首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 其他相关 >

从M个数中随机选定N个数的所有组合,无序,(一)

2013-09-06 
从M个数中随机选出N个数的所有组合,无序,(一)这题目其实就是很经典的Cnm的问题,即从m个数中选取n个数,要求

从M个数中随机选出N个数的所有组合,无序,(一)

这题目其实就是很经典的

Cn

   m

的问题,即从m个数中选取n个数,要求选出来的数是无序的。

就以下面的例子来演示一下把。

题目:从1,2,3,4,5中随机选取3个数,要求列举出所有的组合。

/** *  * @author Administrator *从5个数中随机挑选3个数的所有组合,我们只需要修改str:供挑选的数字集合,*Length:挑选的数量就可以获取所有的可能。至于故意输出Length大于数组数量的,自己看结果把!^_^ */public class Test8 {static char[] ch;final static int Length=3;//挑选的数量static String str="12345";//备选的数public static void main(String[] args) {char[] c = str.toCharArray();//分成数组的形式ch=c;String result="";show(result, 0, Length); }/***这里输入的参数含义为,result:已经选择了的数,start:从第start位开始选数,length:还需要选择几个数。*/public static void show(String result,int start,int length){if(length==0){System.out.println(result);}else{if(length<=(ch.length-start)){/**这里我们分成两种情况来分析,比如12345中选三个数,我们选不选1,这个数,*如果不选,那么执行第一个show方法,如果选,执行第二个show方法,这样我们就可以利用递归列举出所有的可能*/ show(result, start+1, length);result+=ch[start];show(result, start+1, length-1);}}}

结果:

345
245
235
234
145
135
134
125
124
123


下一篇:从M个数中随机选出N个数的所有组合,有序,(二)

热点排行