Administrator
发布于 2026-06-28 / 0 阅读
0
0

逆元

逆元

定义

对于非零整数 a,ma,m,如果存在 bb 使得 ab1(modp)ab\equiv 1\pmod p,就称 bbaa 在模 mm 意义下的 逆元(inverse),记作 b=a1(modp)b = a^{-1} \pmod p

特别注意

如果 a1(modm)a\equiv 1\pmod m,则称 aa 在模 mm 意义下 不存在逆元,因为 任意数 都是 aa 在模 mm 意义下的逆元。

背景

我们知道,对于除法操作来说取模操作不具有分配性,即:

abmodpamodpbmodp\frac{a}{b} \bmod p \neq \frac{a \bmod p}{b \bmod p}

毕竟一般的取模操作只对整数有意义。

这时候需要引入逆元进行操作:

ab=ab1\frac{a}{b} = ab^{-1}

举个例子

105(mod3)10mod35mod3\frac{10}{5} \pmod 3 \neq \frac{10 \bmod 3}{5 \bmod 3}

在模 33 意义下5×21(mod3)25在模3意义下的逆元5 \times 2 \equiv 1 \pmod 3 \Rightarrow 2 \text{是} 5 \text{在模} 3 \text{意义下的逆元}
故:
105mod3=(10×2)mod3=20mod3=2\frac{10}{5} \bmod 3 = (10 \times 2) \bmod 3 = 20 \bmod 3 = 2

由此也可以引申出有理数的取模运算:

给出一个有理数 c=abc=\frac{a}{b},则 cmodpc \bmod p 的值被定义为 bb 在模 pp 意义下的逆元。

求解方法

费马小定理

费马小定理

pp 是素数,aa 是不被 pp 整除的整数,则有:

ap11(modp)a^{p-1} \equiv 1 \pmod p

由此可得:

ap2a1(modp)a^{p-2} \equiv a^{-1} \pmod p

aa 在模 pp 意义下的逆元为 ap2modpa^{p-2} \bmod p

使用快速幂求解即可。

int qpow(int a,int b){
 int ret = 1;
 for(;b;b>>=1,a*=a,a%=mod)if(b & 1)ret *= a,ret %= mod;
 return ret;
}
int inverse = qpow(b-1,mod-2)

扩展欧几里得算法

ax1(modp)ax\equiv 1\pmod p 可转换成一个 丢番图方程 的形式:axbp=1ax - bp = 1

通过丢番图方程求解。


评论