主题:关于组合数学的算法疑问
Manderling
[专家分:0] 发布于 2006-11-07 23:51:00
[size=5]想请教各位在给出的n个数中要选出m个数(m<n),算法该如何实现?[/size]
回复列表 (共4个回复)
沙发
freeeerf [专家分:5440] 发布于 2006-11-08 11:08:00
选的条件是什么呢?选怎样的m个数.
板凳
Manderling [专家分:0] 发布于 2006-11-08 12:02:00
没有要求,就是从n个数中选取m个~选排列问题
3 楼
argentmoon [专家分:13260] 发布于 2006-11-08 12:37:00
C(n, m)..
网上有很多的算法,你可以搜一下。
4 楼
euc [专家分:4310] 发布于 2006-11-08 13:46:00
首先初始化,将数组前n个元素置1,表示第一个组合为前n个数。
然后从左到右扫描数组元素值的“10”组合,找到第一个“10”组合后将其变为“01”组合,同时将其左边的所有“1”全部移动到数组的最左端。
当第一个“1”移动到数组的m-n的位置,即n个“1”全部移动到最右端时,就得到了最后一个组合。
比如数列1,2,3,4四个数选两个.先建立一个0/1数组,然后这样变换...
1100
1010
0110
1001
0101
0011
我来回复