逆元

逆元

\(x\) 关于 \(p\) 的逆元记为 \(x^{-1}\),定义为 \(x^{-1} = a, ax \equiv 1 \mod p\)

求逆元的常用方法大概有两种:

法一: 线性求逆元。

已知 \(1^{-1}=1 \mod p\),假设我们要求 \(i\) 的逆元,则 \(p = k \times i + r\)

这个式子在模意义下就是:

\[k \times i + r \equiv 0 \mod p \]

同乘 \(i^{-1}r^{-1}\) 就会得到:

\[\begin{align} k \times r^{-1} + i^{-1} &\equiv 0 \mod p \\ i^{-1} &\equiv -k \times r^{-1} \mod p \\ i^{-1} &\equiv -\left\lfloor \frac{p}{i} \right\rfloor \times (p \bmod i)^{-1} \mod p \\ i^{-1} &\equiv p - \left\lfloor \frac{p}{i} \right\rfloor \times (p \bmod i)^{-1} \mod p \\ \end{align} \]

于是就可以线性递推求出逆元了。

法二: 快速幂求逆元。

这种求法依赖于费马小定理,因此要求 \(p\) 为素数。定理内容如下:

\[a^{p-1} \equiv 1 \mod p \]

其中 \(a,p\) 互质。

于是逆元的定义式就可以作以下变换:

\[\begin{align} ax &\equiv 1 \mod p \\ ax &\equiv a^{p-1} \mod p \\ x &\equiv a^{p-2} \mod p \end{align} \]

于是就可以用快速幂 \(O(\log p)\) 时间复杂度计算出 \(a^{p-2} \bmod p\) 的值。

posted @ 2025-11-26 19:28  So_noSlack  阅读(5)  评论(0)    收藏  举报