总结——数论:乘法逆元
零 乘法逆元
对于缩系中的元素,每个数a均有唯一的与之对应的乘法逆元x,使得 ax≡1(mod n) 。
一个数有逆元的充分必要条件是 gcd(a,n)=1 ,此时逆元唯一存在。
逆元的含义:模 n 意义下,1个数 a 如果有逆元 x ,那么除以 a 相当于乘以 x 。
一 扩展欧几里得求逆元
将方程 ax=1(mod m) 转化为 ax+my=1 ,套用求一次不定方程的方法,用扩展欧几里得算法求得一组 x0,y0 和 gcd。一次不定发出有解的充要条件是 (a,n)|b ,所以当 gcd(a,m)=1 时逆元存在,即同余方程有唯一解 x0(mod n)。调整求出的 x0 在 [0,m-1] 的范围内即可。时间复杂度为O(ln n)。
1 typedef long long ll; 2 void extgcd(ll a,ll b,ll& d,ll& x,ll& y){ 3 if(!b){ d=a; x=1; y=0;} 4 else{ extgcd(b,a%b,d,y,x); y-=x*(a/b); } 5 } 6 ll inverse(ll a,ll n){ 7 ll d,x,y; 8 extgcd(a,n,d,x,y); 9 return d==1?(x+n)%n:-1; 10 }
二 费马小定理求逆元
费马小定理:对素数 P 和任意整数 A ,都有 A 的 (P-1) 次方取模与 P 等于 1 。
公式表示:AP−1 ≡ 1 (mod P)(P为素数)
费马小定理证明:http://blog.csdn.net/qq_35703773/article/details/78428127?readlog
求解逆元:当 P,A 互质时(P为素数),由 AP−1 ≡ 1 (mod P) ,可推出 A·AP-2≡ 1 (mod P) ,故 AP-2 为 A 在模 P下的逆元,快速幂求即可。
三 欧拉定理求逆元(不要求 A,P 互质)
欧拉函数:对于一个正整数 n ,小于 n 且和 n 互质的正整数(包括 1)的个数,记作 φ(n) 。
欧拉函数性质:① 对于素数 p ,φ(p) = p -1 ② 若 gcd(p,q)=1 , φ(p*q) = (p -1) * (q -1)
欧拉定理:对于互质的正整数 a 和 n ,有 aφ(n) ≡ 1 (mod n) 。欧拉定理证明。
求解逆元(通用求逆元方法):由欧拉定理可知,a·aφ(n)-1≡ 1 (mod n) ,故 aφ(n)-1 是 a 的逆元。

浙公网安备 33010602011771号