组合数C(n,m)在组合数学中占有重要地位。与组合数相关的最重要的两个内容是杨辉三角和二项式定理
1、二项式展开系数和杨辉三角一致
如果求的(a+b)^n所有项的系数?
1、方法一用杨辉三角递推:时间复杂度O(n^2)
2、利用等式C(n,k)=(n-k+1)/k*C(n,k-1),从C(n,0)开始从左到右递推,时间复杂度O(n)
代码:
C[0]=1;
for(int i=1;i<=n;i++) C[i]=C[i-1]*(n-i+1)/i;
注意:应该先乘后除,因为C[i-1]/i可能不是整数。但这样增加了溢出的可能性。如果担心溢出情况可以先约分