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