码迷,mamicode.com
首页 > 其他好文 > 详细

Lucas定理

时间:2019-10-19 21:02:59      阅读:80      评论:0      收藏:0      [点我收藏+]

标签:class   关于   spl   math   mod   就是   质数   line   形式   

绪论

对于大组合数对小质数求余的快速算法。

公式

假设 \(n=\prod_{i=0}^k{a_ip^i},m=\prod_{i=0}^k{b_ip^i}\) ,其中 \(p \in \mathbb{P}\) (就是说,是质数),那么有:

\[C_n^m=\prod_{i=0}^k{C_{a_i}^{b_i}}\]

容易发现,可以表示成:

\[C_n^m=C_{n\mod p}^{m\mod p}\times C_{[\frac{n}{p}]}^{[\frac{m}{p}]}\]

这就是一个容易编码的递归形式。

证明

定义两个多项式同余,为两个多项式的每一次项的系数在模意义下相等。

然后显然,我们有 \(C_n^i=\frac{n!}{i!(n-i)!}=\frac{n}{i}\frac{(n-1)!}{(i-1)!(n-i)!}=\frac{n}{i}C_{n-1}^{i-1}\equiv 0\pmod{p}\)

然后,我们构造关于 \(n\) 的组合数的生成函数:

\[(1+x)^n=(1+x)^{kp+r}=((1+x)^p)^k\times (1+x)^r\equiv(1+x^p)^k\times (1+x)^r\pmod{p}\]

显然,乘积中第 \(m\) 项的系数,要么是 \(0\) ,要么是 \(C_r^{m\mod p}\times C_k^{[\frac{m}{p}]}\) 。于是证明了其表达形式的第二种。

Lucas定理

标签:class   关于   spl   math   mod   就是   质数   line   形式   

原文地址:https://www.cnblogs.com/pupuvovovovo/p/11704967.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!