【学习笔记】逆元

逆元

定义

\(ax\equiv1\pmod p\),且 \(a\)\(p\) 互质,则称 \(x\)\(a\) 的逆元,记为 \(a^{-1}\)

所以对于求解 \(\frac{a}{b} \bmod p\),我们可以先求出 \(b\) 的逆元 \(b^{-1}\),在将 \(a\)\(b^{-1}\) 相乘再模 \(p\),就可以求解了。

做法

扩展欧几里得算法(exgcd)

可以将 \(ax\equiv1\pmod p\) 转化为 \(ax+py=1\) 求解。

欧拉定理

\(a^{\varphi(p)} \equiv 1 \pmod p\),那么 \(x=a^{\varphi(p)-1} \bmod p\),满足条件。利用快速幂计算即可。

\(\mathcal{O(n)}\) 求阶乘逆元

若需要求 \((i!)^{-1} \ (i \in [1,n])\),则可以先求出 \((n!)^{-1}\),再通过递推求出 \((i!)^{-1}\) 的逆元,为 \((i!)^{-1} \equiv ((i+1)!)^{-1 }\times (i+1) \pmod p\)

线性求逆元

若给定 \(a_1,a_2, \dots ,a_n\),可以先求出 \(k=\prod_{i=1}^{n} a_i\) 以及 \(k^{-1}\)

再求出前缀积 \(pre_i=\prod_{j=1}^{i}\) 和后缀积 \(suf_i=\prod_{j=i+1}^{n}\)

则有 \(a_i=k^{-1}\times pre_{i-1} \times suf_{i+1} \bmod p\)

\[\large{\mathbb{END}} \]

posted @ 2025-04-16 16:56  tyh_27  阅读(8)  评论(0)    收藏  举报  来源