lucas定理證明

2022-09-16 22:00:25 字數 962 閱讀 1184

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])  mod p 相同

即:lucas(n,m,p)=c(n%p,m%p)*lucas(n/p,m/p,p) 

證明:首先我們注意到 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) 

注意!這裡一定要是質數。

(為什麼要是質數呢?

因為(1+x)^p=1^p+c(p,1)x+c(p,2)x^2+...+x^p

但p為質數時c(p,1),c(p,2),...,c(p,p-1) 模p都為0

所以(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) 

perfect!

瞎搞 Lucas定理證明

求證cn m i 0kc nimi modp 其中m ki 0mip i n ki 0nip i p是質數。首先,我們知道,n0 nmodp,m 0 mmodp 那麼原式相當於求證cn m c np mp cnmodp mmod pmodp 這樣就可以歸納一發證明整個定理了。首先我們知道,對於任意的...

Lucas定理以及證明

對著無數篇部落格終於 yy 懂了 lucas 定理,興奮之際趕緊寫下來 如果 p 是質數,那麼 c equiv c times c mod p 首先我們要知道乙個性質 如果 p 為質數,那麼有 c equiv 0 mod p 其中 n ne 0,p 這個很顯然吧,考慮把組合數的式子寫出來 c p n...

Lucas定理 推導及證明

當n m為大數,p為素數時,lucas定理是用來求 c n,m mod p的 值。適用領域範圍 在數論中求大組合數取模。表示式 c n,m p c n p,m p c n p,m p p lucas定理 我們令 n sp q m tp r q r p 那麼 在程式設計時你只要繼續對 呼叫lucas定...