回 帖 发 新 帖 刷新版面

主题:关于组合数学的算法疑问

[size=5]想请教各位在给出的n个数中要选出m个数(m<n),算法该如何实现?[/size]

回复列表 (共4个回复)

沙发

选的条件是什么呢?选怎样的m个数.

板凳

没有要求,就是从n个数中选取m个~选排列问题

3 楼

C(n, m)..
网上有很多的算法,你可以搜一下。

4 楼

首先初始化,将数组前n个元素置1,表示第一个组合为前n个数。     
然后从左到右扫描数组元素值的“10”组合,找到第一个“10”组合后将其变为“01”组合,同时将其左边的所有“1”全部移动到数组的最左端。     
当第一个“1”移动到数组的m-n的位置,即n个“1”全部移动到最右端时,就得到了最后一个组合。     

比如数列1,2,3,4四个数选两个.先建立一个0/1数组,然后这样变换...
1100
1010
0110
1001
0101
0011

我来回复

您尚未登录,请登录后再回复。点此登录或注册