洛谷 P3811 递推求解 [1,n] 的乘法逆元
如何求 \(x\ (x>1)\) 在模 \(p\) 意义下的逆元:
-
做带余除法:设 \(p=kx+r\ (r<x)\),其中 \(k=\lfloor\dfrac{p}{x}\rfloor,\ r=p\bmod x\),显然有 \(k<p\)
则 \(kx+r=p\equiv 0 \pmod p\) -
反解 \(x\),得 \(x\equiv -rk^{-1}\pmod p\)
-
两边取倒数,得 \(x^{-1}\equiv -kr^{-1}\pmod p\)
注意 \(-k < 0\),不能直接乘,而由 \(-k\equiv p-k\pmod p\),所以我们可以用 \(p-k\) 替换 \(k\)。
这样我们就得到了 \(x\) 的逆元:\(x^{-1}\equiv (p-k)r^{-1}\pmod p\),其中 \(k=\lfloor\dfrac{p}{x}\rfloor,\ r=p\bmod x\)
由于 \(r<x\),所以在从小到大递推 \(x^{-1}\) 的时候,\(r^{-1}\) 肯定已经计算过了。
补一个 \(1^{-1}\equiv 1\pmod p\)
以上。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!