逆元

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


证明:
我们需要寻找一个整数M满足Ma1(modm)M\equiv a^{-1} \pmod{m}
当有ax1(modm)ax\equiv 1\pmod{m}
此时有x满足x1a(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)的一组解,其xa/gcd(a,m)x为a/gcd(a,m)的逆元


线性递推求逆元

已知111(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+r0(modp)\qquad k\times i+r\equiv 0\qquad \qquad \pmod{p}
同乘i1,r1i^{-1},r^{-1}
i1k×r1(modp)\qquad i^{-1}\equiv -k\times r^{-1}\qquad \qquad \pmod{p}
i1p/i×(p%i)1(modp)\qquad i^{-1}\equiv -p/i\times (p\%i)^{-1}\qquad \pmod{p}
所以
i1=p/i×(p%i)1modp\qquad i^{-1}= -p/i\times (p\%i)^{-1}\mod{p}
我们需要保证逆元为正整数,在右式中加上p,并不影响答案
i1=pp/i×(p%i)1modp\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时,对于公式
i1=p/i×(p%i)1modp\qquad i^{-1}= -p/i\times (p\%i)^{-1}\mod{p}
需要求解的状态没有办法从已知状态求解
有如下定理
i>pi>p,iimodp\mod{p}意义下的逆元等价于i%pi\%p,在modp\mod {p}意义下的逆元

i1(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
此时xxp%ip\%imodp\mod p意义下的逆元


费马小定理求逆元

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