描述:
\quad 当 n 、 m n、m n、m为大数, p p p为素数时,Lucas定理是用来求 C n m m o d p C_n^m mod p Cnmmodp的值。适用领域范围:在数论中求大组合数取模。
通式:
C n m = C n / p m / p ∗ C n % p m % p ( m o d ( p ) ) C_n^m=C_{n/p}^{m/p}∗C_{n\%p}^{m\%p}(mod(p)) Cnm=Cn/pm/p∗Cn%pm%p(mod(p))
p p p为素数
证明:
已知 p p p为素数,将非负整数 a a a转化成 p p p进制数:
a = a k p k + a k − 1 p k − 1 + a k − 1 p k − 2 + . . . . + a 1 ∗ k + a 0 a=a_{k}p^{k}+a_{k−1}p^{k−1}+a_{k−1}p^{k−2}+....+a_{1∗k}+a_{0} a=akpk+ak−1pk−1+ak−1pk−2+....+a1∗k+a0
由于p是素数对于 1 ≤ j ≤ p − 1 1≤j≤p−1 1≤j≤p−1,都有 C p j = = p j ∗ C p − 1 j − 1 ≡ 0 m o d ( p ) C_p^j==\frac{p}{j}∗C_{p−1}^{j-1}≡0mod(p) Cpj==jp∗Cp−1j−1≡0mod(p)
由二项式定理: ( 1 + x ) p = ∑ i = 0 p C p i 1 i x p − i = 1 + ∑ i = 1 p − 1 C p i + x p (1+x)^{p}=\sum_{i=0}^{p}{C_p^i1^{i}x^{p-i}}=1+\sum_{i=1}^{p-1}{C_p^i}+x^{p} (1+x)p=∑i=0pCpi1ixp−i=1+∑i=1p−1Cpi+xp
由上面的推理可得: 1 + ∑ i = 1 p − 1 C p i + x p ≡ 1 + x p m o d ( p ) 1+\sum_{i=1}^{p-1}{C_p^i}+x^{p}≡1+x^{p}mod(p) 1+∑i=1p−1Cpi+xp≡1+xpmod(p)
即: ( 1 + x ) p ≡ 1 + x p m o d ( p ) (1+x)^{p}≡1+x^{p}mod(p) (1+x)p≡1+xpmod(p) \quad ①
设: n = s p + q , m = t p + r n=sp+q,m=tp+r n=sp+q,m=tp+r
s = n / p , q = n % p , t = m / p , r = m % p s=n/p,q=n\%p,t=m/p,r=m\%p s=n/p,q=n%p,t=m/p,r=m%p
( 1 + x ) n = ( 1 + x ) s p + q = ( 1 + x ) s p ∗ ( 1 + x ) q = ( ( 1 + x ) p ) s ∗ ( 1 + x ) q (1+x)^{n}=(1+x)^{sp+q}=(1+x)^{sp}∗(1+x)^{q}=((1+x)^{p})^{s}∗(1+x)^{q} (1+x)n=(1+x)sp+q=(1+x)sp∗(1+x)q=((1+x)p)s∗(1+x)q
代入公式①得:
( 1 + x ) n = ( 1 + x p ) s ∗ ( 1 + x ) q m o d ( p ) (1+x)^{n}=(1+x^{p})^{s}∗(1+x)^{q}mod(p) (1+x)n=(1+xp)s∗(1+x)qmod(p)
对 ( 1 + x p ) s (1+x^{p})^{s} (1+xp)s 和 ( 1 + x p ) s ∗ ( 1 + x ) q (1+x^{p})^{s}∗(1+x)^{q} (1+xp)s∗(1+x)q分别使用二项展开式
( 1 + x p ) s ∗ ( 1 + x ) q = ∑ i = 0 s ( s i ) ∗ x i ∗ p ∗ ∑ i = 0 q ( q j ) m o d ( p ) (1+x^{p})^{s}∗(1+x)^{q}=\sum_{i=0}^{s}{{ s\choose i }*x^{i*p}*\sum_{i=0}^{q}{{ q\choose j }}}mod(p) (1+xp)s∗(1+x)q=∑i=0s(is)∗xi∗p∗∑i=0q(jq)mod(p)
即: ( 1 + x ) n = ∑ i = 0 s ( s i ) ∗ x i ∗ p ∗ ∑ i = 0 q ( q j ) m o d ( p ) (1+x)^{n}=\sum_{i=0}^{s}{{ s\choose i }*x^{i*p}*\sum_{i=0}^{q}{{ q\choose j }}}mod(p) (1+x)n=∑i=0s(is)∗xi∗p∗∑i=0q(jq)mod(p) \quad ②
对 ( 1 + x ) n (1+x)^{n} (1+x)n进行二项式展开:
\quad \quad \quad ( 1 + x ) n = ∑ i = 0 s p + q ( s p + q k ) ∗ x k (1+x)^{n}=\sum_{i=0}^{sp+q}{{ sp+q\choose k }*x^{k}} (1+x)n=∑i=0sp+q(ksp+q)∗xk \quad ③
首先求③中的 x t p + r x^{tp+r} xtp+r的系数为 ( s p + q t p + r ) { sp+q\choose tp+r } (tp+rsp+q)
再求②中的 x t p + r x^{tp+r} xtp+r我们发现,当且仅当 i = t , j = r i=t,j=r i=t,j=r能够得到 x t p + r x^{tp+r} xtp+r的系数,即为: ( s t ) ( q r ) { s\choose t }{ q\choose r } (ts)(rq)
即:
\quad \quad \quad ( s p + q t p + r ) = ( s t ) ( q r ) ( m o d ( p ) ) { sp+q\choose tp+r }={ s\choose t }{ q\choose r }(mod(p)) (tp+rsp+q)=(ts)(rq)(mod(p))
即:
\quad \quad \quad ( n m ) = ( n / p m / p ) ( n m % p m % p r ) ( m o d ( p ) ) { n\choose m }={ n/p\choose m/p }{ nm\%p\choose m\%pr }(mod(p)) (mn)=(m/pn/p)(m%prnm%p)(mod(p))
即:
\quad \quad \quad C n m = C n / p m / p ∗ C n % p m % p ( m o d ( p ) ) C_n^m=C_{n/p}^{m/p}∗C_{n\%p}^{m\%p}(mod(p)) Cnm=Cn/pm/p∗Cn%pm%p(mod(p))