逆元

若ax≡1(modm)ax\equiv 1\pmod{m},则称x为a在模m意义下的逆元,记作a−1a^{-1}
ps:
\qquad当(a,m)!=1时,不存在逆元


证明:
我们需要寻找一个整数M满足M≡a−1(modm)M\equiv a^{-1} \pmod{m}
当有ax≡1(modm)ax\equiv 1\pmod{m}
此时有x满足x≡1a(modm)x\equiv \frac{1}{a}\pmod {m}
所以x为a在mod m意义下的逆元



拓欧求逆元

根据线性同余方程可知
求解x相当于求解
ax+my=1ax+my=1的一组整数解
可知逆元的前提(a,m)=1(a,m)=1,否则无解
拓展欧几里得可求其中的一组解
ps:
对于拓展欧拉求解的x,当a,m不互质时,也可以求解出一个数,但是这是ax+my=gcd(a,m)ax+my=gcd(a,m)的一组解,其x为a/gcd(a,m)x为a/gcd(a,m)的逆元


线性递推求逆元

已知1−1≡1(modp)1^{-1}\equiv 1\pmod{p}
设p=k×i+r,r<i,1<i<pp=k\times i+r,r<i,1<i<p
k=p/i,r=p%ik=p/i,r=p\%i
将上式放到(modp)\pmod{p}的意义下会得到
k×i+r≡0(modp)\qquad k\times i+r\equiv 0\qquad \qquad \pmod{p}
同乘i−1,r−1i^{-1},r^{-1}
i−1≡−k×r−1(modp)\qquad i^{-1}\equiv -k\times r^{-1}\qquad \qquad \pmod{p}
i−1≡−p/i×(p%i)−1(modp)\qquad i^{-1}\equiv -p/i\times (p\%i)^{-1}\qquad \pmod{p}
所以
i−1=−p/i×(p%i)−1mod  p\qquad i^{-1}= -p/i\times (p\%i)^{-1}\mod{p}
我们需要保证逆元为正整数,在右式中加上p,并不影响答案
i−1=p−p/i×(p%i)−1mod  p\qquad i^{-1}= p-p/i\times (p\%i)^{-1}\mod{p}

	inv[1]=1;
	for(int i=2;i<=n;++i){
		inv[i]=p-p/i*inv[p%i]%p;
	}

ps:

在线性求解逆元中,p必须是质数

当两个数n,p不互质时并不存在逆元,而逆元n是从1~n的所有状态中转移过来的,所以p必须是质数

在线性求解逆元中,i必须小于p

当i>p时,对于公式
i−1=−p/i×(p%i)−1mod  p\qquad i^{-1}= -p/i\times (p\%i)^{-1}\mod{p}
需要求解的状态没有办法从已知状态求解
有如下定理
当i>pi>p,ii在mod  p\mod{p}意义下的逆元等价于i%pi\%p,在mod  p\mod {p}意义下的逆元
即
i−1≡(i%p)−1(modp)i^{-1}\equiv (i\%p)^{-1}\pmod {p}
证明:
即在线性同余方程中
i×x+p×y=1i\times x+p\times y=1,此时i>pi>p
存在正整数q,使得
(p×q+p%i)×x+p×y=1(p\times q+p\%i)\times x+p\times y=1
(p%i)×x+p×(y+q×x)=1(p\%i)\times x+p\times (y+q\times x)=1
此时xx是p%ip\%i在mod  p\mod p意义下的逆元


费马小定理求逆元

a×ap−2=ap−1≡1a\times a^{p-2}=a^{p-1}\equiv 1
可知,a在mod p的意义下的逆元为ap−2a^{p-2}
用快速幂求解即可