组合数计算

Posted keynman

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了组合数计算相关的知识,希望对你有一定的参考价值。

组合数的计算有好多方法,我慢慢填坑2333

1.$C_{n}^{k}=\frac{n-k+1}{k}C_{n}^{k-1}$

Proof:

$$C_{n}^{k}=\frac{n!}{k!(n-k)!}=\frac{n-k+1}{k}*\frac{n!}{(k-1)!(n-k+1)!}=\frac{n-k+1}{k}C_{n}^{k-1}.$$

利用此结论可非常快速有效的计算一个组合数了。

下给出代码:计算$C_{n}^{k}$(实际操作可将ans换成long long型)

1 int ans=1;
2 for(int i=1;i<=k;i++) {
3     ans=ans*(n-i+1)/i;
4 }
5 printf("%d\n",ans);

 

以上是关于组合数计算的主要内容,如果未能解决你的问题,请参考以下文章

组合数计算

计算组合数

课程作业03:用递归方法计算组合数解决汉诺塔问题判断某个字符串是否回文

02课后作业

使用计算机计算组合数+汉诺塔+判断回文

递归(计算组合数判断回文字符串汉诺塔问题)