【学习笔记】逆元
逆元
定义
若 \(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}}
\]

浙公网安备 33010602011771号