lucas定理的证明

http://baike.baidu.com/link?url=jJgkOWPSRMobN7Zk4kIrQAri8m0APxcxP9d-C6qSkIuembQekeRwUoEoBd6bwdidmoCRQB_dBklDffpzM_87iSPMyiph2iAXCTyv19YpuuG

看一下这个冯志刚的初等数论证明

对最后的补充

(1+x)的a0次方展开式中每一项的形式能够写成C(a0。b0)x的b0次方的形式。每一项是相加的

同理可得

(1+xp)的a1次方展开式中的每一项的形式能够写成C(a1,b1)(x的P次方)的b1次方的形式。

每一项是相加的

....

由于(1+x)的a0次方和(1+x的p次方)的a1次方是相乘的形式。所以能够抽象为一个多项式(x1+x2+..)*(y1+y2+y3++...)*(z1+z2+z3+....)*...把括号去掉之后的每一项都有x有y有z即每一项的形式都是(x*y*z*....)+....

调用上面的形式把同余恒等式的右边写出来的形式是C(a0,b0)x的b0次方*C(a1。b1)(x的P次方)的b1次方

....再次能够化为C(a0。b0)*C(a1。b1)*...*x的(b0+b1*P+b2*P的平方+b3*p的3次方....)。x的指数刚好是b的p进制的形式由于b0。b1,b2...的序列是唯一的,所以有唯一的序列使得又有上面的f(x)同余g(x)则f(ai)同余g(bi)所以同余是左边C(a,b)x的b和同余式右边的C(a0,b0)*C(a1,b1)*.....*x的(b=b0+b1*P+b2*P的平方+b3*p的3次方....)的次方的系数应该是同余的即结论成立

时间: 2024-07-30 06:27:03

lucas定理的证明的相关文章

lucas定理证明

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

组合数学lucas定理 BZOJ2982 combination

2982: combination Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 597  Solved: 357[Submit][Status][Discuss] Description LMZ有n个不同的基友,他每天晚上要选m个进行[河蟹],而且要求每天晚上的选择都不一样.那么LMZ能够持续多少个这样的夜晚呢?当然,LMZ的一年有10007天,所以他想知道答案mod 10007的值.(1<=m<=n<=200,000,000) Inpu

Lucas定理学习(进阶中)

(1)Lucas定理:p为素数,则有: (2)证明: n=(ak...a2,a1,a0)p = (ak...a2,a1)p*p + a0 =  [n/p]*p+a0,m=[m/p]*p+b0其次,我们知道,对任意质数p有(1+x)^p=1+(x^p)(mod p) .我们只要证明这个式子:C(n,m)=C([n/p],[m/p]) * C(a0,b0)(mod p),那么就可以用归纳法证明整个定理.对于模p而言,我们有下面的式子成立: 上式左右两边的x的某项x^m(m<=n)的系数对模p同余.其

[Lucas定理]【学习笔记】

这种神奇的东西............... 参考资料:http://www.cnblogs.com/jianglangcaijin/p/3446839.html Lucas定理 适用于n很大p较小的时候 $ C_n^m\%p \ p \ is \ prime$ $ n=n_k*p^k+n_{k-1}*p^{k-1}+...+n_2*p^2+n_1*p+n_0 $ $ m=m_k*p^k+m_{k-1}*p^{k-1}+...+m_2*p^2+m_1*p+m_0 $ $ C_n^m=\prod\

【学习总结】数学-lucas定理

定义: 数论Lucas定理是用来求 C(mn)%p的值, p是素数. 描述: lucas(n,m,p)=lucas(n/p,m/p,p)?C(m%pn%p) lucas(n,0,p)=1 证明: 设p为素数,A,B为正整数,并且有(即A,B的p进制情况): A=akpk+ak?1pk?1+-+a1p1+a0 B=bkpk+bk?1pk?1+-+b1p1+b0 因为C(jp)=C(j?1p?1)?pj=0 (含有因子p) 所以(1+x)t(modp)=(1+xt)(modp) (中间展开项均含有C

组合数取模Lucas定理及快速幂取模

组合数取模就是求的值,根据,和的取值范围不同,采取的方法也不一样. 下面,我们来看常见的两种取值情况(m.n在64位整数型范围内) (1)  , 此时较简单,在O(n2)可承受的情况下组合数的计算可以直接用杨辉三角递推,边做加法边取模. (2) ,   ,并且是素数 本文针对该取值范围较大又不太大的情况(2)进行讨论. 这个问题可以使用Lucas定理,定理描述: 其中 这样将组合数的求解分解为小问题的乘积,下面考虑计算C(ni, mi) %p. 已知C(n, m) mod p = n!/(m!(

数学:lucas定理的总结

今天考试的题目中有大组合数取模,不会唉,丢了45分,我真是个弱鸡,现在还不会lucas. 所以今天看了一下,定理差不多是: (1)Lucas定理:p为素数,则有: 即:lucas(n,m,p)=c(n%p,m%p)*lucas(n/p,m/p,p)  然后留下我的理解: 用递归的方式去证明这个式子: 先考虑阶乘,在%p的意义下,x!=(p!^(x/p))*(x/p)!*(x%p)!这里把有p因子的数不模p,用于组合数的'抵消'. 在看到组合数 : C(x,y)=x!/((x-y)!*y!) =(

Lucas定理及其应用

Lucas定理这里有详细的证明. 其实就是针对n, m很大时,要求组合数C(n, m) % p, 一般来说如果p <= 10^5,那么就能很方便的将n,m转化为10^5以下这样就可以按照乘法逆元的方法求解. 定义: C(n, m) = C(n%p, m%p)*C(n/p, m/p) (mod p) 一种比较好理解的证明方式是这样的, 上面资料中有提到, 由p为质数,(1+x)^p = 1+x^p (mod p) p为质数,然后就是下面这幅图的内容了. 将n, m分别表示成p进制,n = n/p*

Lucas定理 以及 C

最近碰到一题,问你求mod (p1*p2*p3*……*pl) ,其中n和m数据范围是1~1e18 , l ≤10 , pi ≤ 1e5为不同的质数,并保证M=p1*p2*p3*……*pl ≤ 1e18 . 要解决这个问题首先需要Lucas定理 或者 C!解法. Lucas定理: 我们令n=sp+q , m=tp+r . q , r ≤ p 那么,然后你只要继续对调用Lucas定理即可. 代码可以递归的去完成这个过程,其中递归终点为t = 0 : 伪代码,时间O(logp(n)*p): int L