求一个排列组合问题的算法
假设X∈{1,2,3,4,5};Y∈{1,2,3,4,5};Z=X*Y,怎么算Z有多少种不同的答案?...
假设X∈{1,2,3,4,5};Y∈{1,2,3,4,5}; Z=X*Y ,怎么算Z有多少种不同的答案?
展开
1个回答
展开全部
这是我写的一个取组合的方法:packageCombination.c3;importjava.util.ArrayList;importjava.util.List;publicclassCombinations{/**设有n个元素,组合数量有2的n次方种。*对0到2的n次方-1中的每个数,考察其二进制位形式,位数为1代表相应元素加入*到组合,0则不加入该元素至组合。**取组合方法*参数:list----原始数组*返回:包含所有组合数组的数组*/publicstaticList>getCombinations(Listlist){List>result=newArrayList>();longn=(long)Math.pow(2,list.size());Listcombine;for(longl=0L;l();for(inti=0;i>>i&1)==1)combine.add(list.get(i));}result.add(combine);}returnresult;}//测试publicstaticvoidmain(String[]args){ArrayListlist=newArrayList();list.add("a");list.add("b");list.add("c");list.add("d");list.add("e");list.add("f");list.add("g");list.add("h");list.add("i");list.add("j");List>result=getCombinations(list);System.out.println(list.toString());System.out.println(result.toString());}}
追问
好吧,我采纳了,可是亲我想要个笔算的算法。你可以给个公式么
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询