c语言p等于n的递乘乘以(m-n)的递乘分之m的递乘是啥?

Python018

c语言p等于n的递乘乘以(m-n)的递乘分之m的递乘是啥?,第1张

组合数的计算是:

C(m,n)=m!/(n!*(m-n)!)

比如说,从新班级的10个人中选出3个人参加乒乓赛,共有不同的方案数:

C(10,3)=10!/(7!*3!)=10*9*8/(1*2*3)= 120 (种)

n的阶乘,就是从1开始乘到n,即1*2*3*...*(n-1)*n。

即n!=1*2*3*...*(n-1)*n。

而(n-1)!=1*2*3*...*(n-1)。

所以可以得出,n!=(n-1)!

*

n。

由这个概念,可以得出递归求阶乘函数fact的算法:

1

如果传入参数为0或1,返回1;

2

对于任意的n,返回n*fact(n-1)。

代码如下:

int fact(int n)

{

if(n == 0 || n == 1) return 1

return n*(fact(n-1))

}