1.求逆元:
①除法取模一般公式:(x/y)%k=x%(y*k)/y ,k是否为素数无要求
②费马小定理:若p是素数,则a^(p-1) ≡1 (mod p) ,那么a的逆元就是a^(p-2) (mod p) 用快速幂来算
③Ex_gcd:解方程,求得通解,再转换为最小正整数解
④线性逆元打表:inv(a) = (p - p / a) * inv(p % a) % p ,inv(1)=1。p必须是素数
⑤欧拉定理:a^(-1)≡a^(phi(p)-1) (mod p) ,p是否为素数无要求
https://www.cnblogs.com/linyujun/p/5194184.html
https://blog.csdn.net/guhaiteng/article/details/52123385
2.组合数取模:
①杨辉三角
②Lucas定理:Lucas(n,m)=C(n%p,m%p)*Lucas(n/p,m/p)%p, m=0时返回1,需满足p是素数
③公式: C(n,m)=n!/((n-m)!*m!),结合费马小定理算
④递推:C(i)=C(i-1)*(n-i+1)/i,结合费马小定理,注意不能用除法取模一般公式①,因为这里的"/i"必须除整,取了模后就未必能除整了。
https://blog.csdn.net/u011815404/article/details/81433925
3.用Ex_gcd解方程,设ax+by=gcd(a,b)的解是(x0,y0),g=gcd(a,b),
则ax+by=c的特解是(x0*c/g,y0*c/g),
设b1=b/g,则ax+by=c的最小正整数解是(x%b1+b1)%b1
4.若a≡b(mod m) 且d|m 则a≡b(mod d)
推导:a-b=mx,m=dy,所以a-b=dz,所以a≡b(mod d)
5.x%km%m<=>x%m
推导:(x-x%(km))=(km)*y,所以(x-x%(km))=my,移项,x-my=x%(km),两边取模,(x-my)%m=x%(km)%m,即x%m=x%(km)%m
6.欧拉函数应用之一:
====================================(暂时就先这样