spli Orz..
乘法逆元
定义
若ax≡1modpax≡1modp,则称xx是aa在modpmodp意义下的逆元,记为x≡a−1modpx≡a−1modp
当然,aa也是xx在modpmodp意义下的逆元
ab=a⋅b−1ab=a⋅b−1
几乎所有模意义下的除法都需要逆元
有逆元的充要条件
aa在modpmodp意义下有逆元的充要条件:(a,p)=1(a,p)=1
逆元的求法
EXGCD
若求aa在modpmodp意义下的逆元,则可以转化为求解如下方程
ax+py=1ax+py=1
有EXGCD的相关知识可以得到,当且仅当(a,p)=1(a,p)=1时有解(有逆元的充要条件的证明)
费马小定理
如果pp为质数,则ap−1≡1modpap−1≡1modp
∴a⋅ap−2≡1∴a⋅ap−2≡1
∴ap−2≡a−1∴ap−2≡a−1
欧拉定理
将费马小定理中的p−2p−2换为φ(p)−1φ(p)−1即可
pp可以不是质数
递推
用于O(n)O(n)预处理[1⋯n][1⋯n]的逆元
构造p=ki+rp=ki+r
∴ki+r≡0modp∴ki+r≡0modp
∴ki=−r∴ki=−r
∴i−1=−k⋅r−1∴i−1=−k⋅r−1
其中k=⌊pi⌋,r=p%ik=⌊pi⌋,r=p%i
∴i−1=−⌊pi⌋⋅inv[p%i]∴i−1=−⌊pi⌋⋅inv[p%i]
为了防止出现负数,通常的写法是这样的
inv[i]=(mod-mod/i)*inv[mod%i]%mod;