乘法逆元
乘法逆元小结
乘法逆元,一般用于求 的值( 通常为质数),是解决模意义下分数数值的必要手段。
逆元定义
若,且与互质,那么我们就能定义:
为 的逆元,记为,所以我们也可以称 为 在 意义下的倒数,
所以对于 ,我们就可以求出 在 下的逆元,然后乘上 ,再 ,就是这个分数的值了。
求解逆元的方式
拓展欧几里得
这个方法十分容易理解,而且对于单个查找效率似乎也还不错,比后面要介绍的大部分方法都要快(尤其对于 比较大的时候)。
这个就是利用拓欧求解 线性同余方程 的的情况。我们就可以转化为解 这个方程。
求解这个方程的解。不会拓欧可以点这里~
而且这个做法还有个好处在于,当 (互质),但 不是质数的时候也可以使用。
代码比较简单:
快速幂
这个做法要利用 费马小定理
若为素数,为正整数,且、互质。
则有。
这个我们就可以发现它这个式子右边刚好为 。
所以我们就可以放入原式,就可以得到:
所以我们可以用快速幂来算出 的值,这个数就是它的逆元了
代码也很简单:
线性算法
用于求一连串数字对于一个的逆元。洛谷P3811
只能用这种方法,别的算法都比这些要求一串要慢。
首先我们有一个,
然后设 也就是 是 的商, 是余数 。
再将这个式子放到意义下就会得到:
然后乘上,就可以得到:
于是,我们就可以从前面推出当前的逆元了。
代码也很短:
阶乘逆元 求
因为有如下一个递推关系。
所以我们可以求出的逆元,然后逆推,就可以求出所有的逆元了。
递推式为
所以我们可以求出 的取值了。
然后这个也可以导出 的取值,也就是
具体实现可以参考我这发提交(卡了常。。)
__EOF__

本文作者:zjp_shadow
本文链接:https://www.cnblogs.com/zjp-shadow/p/7773566.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/zjp-shadow/p/7773566.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效