求组合数取模的几种方法

求Cnm%P  其中P为大质数

①利用杨辉三角

②Cnm=[n*(n-1)......*(n-2)]/[m*(m-1)....*1],由式子的意义可知此数肯定为整数,将分子分解质因数,记录下各个质因子的个数,减去对应的分母的质因子的个数,最后每个质数的个数肯定非负,在统计各个质因子的个数,最后对P取模

③利用费马小定理,令F[n]=n!%P,G[n]存放F[n]模P的逆元,对于n不超过1e6,则Cnm=n!/[(n-m)!*m!]%P=F[n]/(F[n-m]*F[m])%P=F[n]*G[n]*G[n]%P.

posted on 2016-10-28 10:38  比特飞流  阅读(387)  评论(0编辑  收藏  举报

导航