Lucas定理

2019-04-13 20:39发布

首先给出这个Lucas定理:   A、B是非负整数,p是质数。AB写成p进制:A=a[n]a[n-1]...a[0],B=b[n]b[n-1]...b[0]。
则组合数C(A,B)与C(a[n],b[n])*C(a[n-1],b[n-1])*...*C(a[0],b[0])  modp同余
即:Lucas(n,m,p)=c(n%p,m%p)*Lucas(n/p,m/p,p)    证明:表示没看懂。。

Lucas定理的一个证明(找的)

无意中看到这么一个定理,wiki上的证明我是看不懂了... http://en.wikipedia.org/wiki/Lucas%27_theorem  友情提示:上wiki,先FQ- -|| 千辛万苦...终于找到一个我能看懂的证明~ 先贴个wiki上的公式:   For non-negative integers m and n and a prime p, the following congruence relation holds:
where
and
are the base p expansions of m and n respectively.   首先我们注意到 n=(ak...a2,a1,a0)p  =  (ak...a2,a1)p * p + a0                                                        =  [n/p]*p+a0
                                                    且m=[m/p]+b0   只要我们更够证明 C(n,m)=C([n/p],[m/p]) * C(a0,b0)  (mod p) 剩下的工作由归纳法即可完成   我们知道对任意质数p:   (1+x)^p  == 1+(x^p)  (mod p)  注意!这里一定要是质数  ................(为什么)   对 模p 而言
 上式左右两边的x^m的系数对模p而言一定同余(为什么),其中左边的x^m的系数是 C(n,m) 而由于a0和b0都小于p 右边的x^m ( = x^(([m/p]*p)+b0)) 一定是由 x^([m/p]*p) 和 x^b0 相乘而得 (即发生于 i=[m/p] , j=b0 时) 因此我们就有了   C(n,m)=C([n/p],[m/p]) * C(a0,b0)  (mod p)