【逆元】: 若 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下的逆元 (可以证明,扩展欧几里得 的运算过程 x,y不会超过max(a,b))
威尔逊定理: 当且仅当p为质数时,有 (p-1)! ≡ p-1 ≡ -1 (%p)
因为 1~ p-1 中,除了 1和p-1 , 其余的都能两两配对、互为逆元。
【欧拉定理】
对于互质的整数x,p,xφ(p) ≡ 1 (%p)
【广义欧拉定理】
对于任意整数x,p, 若n>=φ(p) ,则 xn ≡ xn%φ(p)+φ(p) (%p)。
对比普通欧拉定理,如x=3,p=6, 30=1, 31 = 32 = 33 = ... = 3
【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 的最大值
【中国剩余定理(孙子定理)】{