求组合数算法的实现,C语言版本的求组合数,适合VB,C++,C#,JAVA,本站原创
求组合数算法的实现,C语言版本的求组合数,本站原创求组合数.例如M中取N个数进行组合求组合数
C(M,N)表示从M个元素中取N个元素进行排列
[quote]
思路:1.)C(M,N)/C(M-1,N-1)=(M-N+1)/N可以利用递推
2.)C(M,N)=C(M,M-N),当N>M/2时,N=M-N可以优化程序
[/quote][code]
if(n>m/2)
n=m-n;
t=1;
for(i=1;i<=n;i++)
t=t*(m-i+1)/i;
return(t);[/code]
[color=red]请大家注意一点:[/color]
[color=red][quote]t=t*(m-i+1)/i;[/quote][/color]
[color=red]这里是否等同于[/color]
[color=red][quote]t*=(m-i+1)/i;[/quote][/color]
[color=red][/color]
[color=red]留给大家思考[/color]
页:
[1]