求逆元(通过费马小定理+快速幂)

273 阅读1分钟

什么是乘法逆元

当a和b很大时,求 (a/b)modm(a/b) \bmod m的值

注意: (a/b)modm(a/b) \bmod m 不满足除法分配率,即(a/b)modm(amodm)/(bmodm)(a/b) \bmod m ≠ (a \bmod m) / (b \bmod m)

此时我们就要想办法将其转化为乘法,乘法可以用乘法分配律:

(ax)modm==(amodm)(xmodm)(a*x)\bmod m == (a \bmod m) * (x \bmod m)

而我们又知道 a/b=ab1a/b=a*b^{-1}

那么就可以表示为:

(ab1)modm(amodm)(b1modm)(a*b^{-1}) \bmod m ≠ (a \bmod m)* (b^{-1} \bmod m)

那么现在这两个等式就是等价的: image.png 那么我们就称x是b的逆元

记作如下:

xb1(modm)x \equiv b^{-1} (\bmod m)

还有一种情况就是说我们不期望去做除法,因为得到的结果可能是小数,但是我们不需要有小数,我们就需要将其转化为乘法去运算,那么也需要通过逆元去做.

876. 快速幂求逆元 - AcWing题库

逆元满足什么性质

image.png

公式两边同乘b: image.png

那么求逆元是干什么呢?就是说给我们一个b,让我们求一个x,满足bx1(modm) b * x \equiv 1 (\bmod m) 写作:

image.png 因为我们上面已经证明了 xb1(modm)x \equiv b^{-1} (\bmod m),所以我们这里只是进行了1一个替换而已.

那么现在问题就转化为了怎么求x.

方法:费马小定理

image.png

那么现在问题就转化为了怎么求bp2 b^{p-2}

方法:快速幂

image.png

验证

b=3,p=5b=3,p=5,请问 3x ≡ 1(mod p),即3乘谁的乘积 mod 5 的余数是1?

用费马定理解:

3p2=352=33=273^{p-2}=3^{5-2}=3^{3}=27

27mod5=227 mod 5 =2

答案为2

即3×2 mod 5 =1