算法

乘法逆元

2020-08-04  本文已影响0人  dachengquan

若整数b,m互质,并且b\mid a,则存在一个整数x,使得a/b \equiv a*x \pmod m。称x为b的模m乘法逆元,记为b^{-1}\pmod m
因为a/b\equiv a*b^{-1} \equiv a/b*b*b^{-1}\pmod m,所以b*b^{-1}\equiv 1 \pmod m
计算乘法逆元有两个方法费马小定理求解同余方程
如果m是质数,用p表示m并且b<p。根据费马小定理b^{p-1}\equiv 1\pmod p,即b*b^{p-2}\equiv 1\pmod p,b^{p-2}就是b的模m乘法逆元。快速幂O(\log p)的时间求出乘法逆元,
如果b与m互质。那么乘法逆元通过求解同余方程b*x \equiv 1 \pmod m,从另一个角度说,我们希望求解b*x\equiv 1 \pmod m里的x,而这个方程有解的条件是gcd(b,m)=1。使用扩展欧几里得算法O(\log(b+m))的时间计算出b的摸m乘法逆元。
乘法逆元可以用来计算除法,乘法和加法本身就可以取余运算,减法需要特判负数。乘方使用欧拉定理和欧拉降幂公式计算。

上一篇 下一篇

猜你喜欢

热点阅读