JAVA排列组合算法如题:用x、y,求出指定长度的所有排列组合。

Python016

JAVA排列组合算法如题:用x、y,求出指定长度的所有排列组合。,第1张

按照你的要求编写的求x,y指定长度的所有排列组合的Java程序如下

import java.util.ArrayList

import java.util.List

public class EE {

 public static void combination(List<String> list, String sNumbers, String sPath, int ALen)

 {

     if (sPath.length()== ALen)

     {

      list.add(sPath)

         return

     }

     for(int i=0i<sNumbers.length()i++)

     {

      

      combination(list,sNumbers,sPath +sNumbers.substring(i,i+1), ALen)

     }

 }

 public static void main(String[] args) {

  List<String> output = new ArrayList<String>()

     System.out.println("组合")

     combination(output,"xy", "", 5)

     for(String s: output)

      System.out.print(s+" ")

     System.out.println()

     System.out.println("共"+output.size()+"个")

 }

}

运行结果

组合

xxxxx xxxxy xxxyx xxxyy xxyxx xxyxy xxyyx xxyyy xyxxx xyxxy xyxyx xyxyy xyyxx xyyxy xyyyx xyyyy yxxxx yxxxy yxxyx yxxyy yxyxx yxyxy yxyyx yxyyy yyxxx yyxxy yyxyx yyxyy yyyxx yyyxy yyyyx yyyyy

共32个

我觉得可以看成数字的排列如 1 2 3 4分别代表A B C D

就是将1 2 3 4排列

四位的就是1234

三位的就是从这四个数字中取出三个数字,得到的三位数是最小的,如:

取 1 2 3 可以得到123 213 321 132等等 其中123是最小的

两为数字的跟三位数字的一样