乘法逆元
逆元定义
如果
逆元存在当且仅当
将
快速求单个数的逆元
快速幂
费马小定理
当
且 时,有
由此转化可得
此时可以用快速幂计算逆元,时间复杂度
扩展欧几里得算法
由裴蜀定理可知,若
容易发现,
使用
线性求 的逆元
例题:loj #110. 乘法逆元。
现要求在
容易发现,
考虑 递推。
假设我们已知
将模数
由此可得
两边同乘
即可得
在此基础上代入
由于
:当 时 不存在模 意义下的乘法逆元。 :由于 中负数取模的结果为负数,所以在实际实现时递推式应写为 (m - m / x) * inv[m % x] % m
。
综上所述,递推式即为:
线性递推即可在
线性求任意 个数的逆元
例题:loj #161 乘法逆元 2。
显然,对于每一个数用 快速幂 /
考虑使用前缀积
此外需要前缀积的逆元,使用
接下来可以通过 快速幂 /
接下来可以通过如下公式线性递推求出
记原序列的逆元为
由于已知前缀积数组的逆元,那么
故递推即可,时间复杂度为
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现