首页 > 代码库 > Lucas定理 中国剩余定理 数论

Lucas定理 中国剩余定理 数论

逆元: 若 a*b=1(%p) 则a是b在%p意义下的逆元。  则在%p意义下  一个数 除以a就等价于乘b

 两种求逆元方法:1、若p为质数时,则有性质则a^(p-1)=1(%p) 。   即a*a^(p-2)=1(%p)。   所以a的逆元就是a^(p-2)

           2、exgcd(a,b,x,y) 可求 ax+by=c=gcd(a,b)  若a,b互质 则可求a%b下的逆元

 

Lucas定理:{

  求C(n,m)在%p下的值    (p是质数)    —— Lucas(n,m,p)=c(n%p,m%p)*Lucas(n/p,m/p,p)

  为什么要求 p是质数?  因为Lucas证明中 要用到  (1+a)^p=(1+a^p)(%p)这个p为质数才有的性质   因为x^p=x(%p)

 }

实际上 求大组合数 真正用的是 求 n!%p  复杂度 是跟p的质因数分解有关的  p=ai^bi(1<=i<=k)  则复杂度应该是 ai^bi 的最大值

 

中国剩余定理(孙子定理){

给出以下的一元线性同余方程组:
技术分享
假设整数m1,m2, ... ,mn两两互质,则对任意的整数:a1,a2, ... ,an,方程组有解,并且通解可以用如下方式构造得到:
  技术分享 ——  M
是整数m1,m2, ... ,mn的乘积

    技术分享   ——  Mi是除了mi以外的n- 1个整数的乘积。

  技术分享   (在%mi下)
 
则同余方程组 技术分享的通解形式为
   技术分享 
那么在模M的意义下,方程组只有一个解:
技术分享
}
 
 
 

Lucas定理 中国剩余定理 数论