当前位置: 首页 > news >正文

关于逆元目前的两种求法以及证明

欧拉定理,费马小定理


证明之前写了这里就不再证明了
https://www.cnblogs.com/hky2023/p/19006833


但是由于每一个你愿都需要单独利用快速幂,计算n个逆元就需要nlog(mod),时间复杂度有点高,
下面就是引入一个递推公式可以利用快速求n前n个元素的逆元,时间复杂度是n

递推


image
inv[i] 就是i的关于mod的乘法逆元
证明:mod = q * i + r, r = mod % i;
(1)q * i + r =(同余)0 MOD mod,
我们需要求i的逆元inv[i]: i * inv[i] =(同余)1 MOD mod;
由(1)式两边同时乘以inv[i] * inv[r]得到:q * i * inv[i] * inv[r] + r * inv[i] * inv[r] =(同余) 0 MOD mod;
由于i * inv[i] = 1 MOD mod, r * inv[r] = 1 MOD mod;
可得q * inv[r] + inv[i] = 0 MOD mod -> inv[i] = -q * inv[r] MOD mod;
我们就可以使用同余号右边的式子进行递推了,但是存在一点就是右边的式子是负值,我们还需要一点变动:
inv[i] = (mod - q) * inv[r] MOD mod;这样一来给右边引入了一个mod * inv[r],由于是mod的倍数不影响取模后的值,所以值不变,由于q = mod / i【下取整】值取正了。
所以才有了图示递推公式。
所以我们只需要提前赋值一下inv[1] = 1,inv[0]是非法的,但是不会存在递推取inv[r], r=0的情况,因为题目一般选择的mod是质数,这样一来取余等于0要么就是1(我们提前帮他赋值,不会错误),要么就是mod自己(一般取不到)。

http://www.njgz.com.cn/news/592.html

相关文章:

  • [Record] 计数选讲 20250727
  • 7/27
  • 大数据之路:阿里巴巴大数据实践——大数据领域建模综述
  • POLIR-Laws-民法典: 第三编 合同 : 第二分编 典型合同: 21.保管、22.仓储、23.委托、24.物业服务、25.行纪、26.中介
  • 记录个IAR程序下载后硬件复位不运行,必须断电复位才运行的问题
  • 操作系统 - 浪矢
  • Qt布局管理
  • 最小树形图:朱刘算法
  • 基于YOLOv8的边坡排水沟堵塞检测与识别项目|完整源码数据集+PyQt5界面+完整训练流程+开箱即用!
  • POLIR-Laws-民法典: 第三编 合同 : 第二分编 典型合同: 20.技术合同 : 1)一般规定、2)技术开发、3)技术转让 和 技术许可、4)技术咨询 和 技术服务
  • hybrid口
  • 利用Transformer模型提升产品检索效果
  • 第二十天
  • 《恶意代码实战分析》笔记
  • POLIR-Laws-民法典: 第三编 合同 : 第二分编 典型合同: 19.运输合同 : 1)一般规定、2)客运合同、3)货运合同、4)多式联运合同
  • 《大道至简》读后感
  • @GetMapping、@PostMapping、@PutMapping、@DeleteMapping
  • 建模神器草图大师!SketchUp 2025 安装激活全流程,新手也能玩转!
  • 【最新专业评测】PDF Reducer专业版:85%超高压缩率的PDF压缩神器|Windows最佳PDF压缩工具推荐
  • @RequestMapping
  • DMP学习路径之入门
  • 第一篇随笔
  • 旋转链表 - 商商
  • 匀速二阶贝塞尔曲线
  • Redis原理
  • HTTP POST请求:初学者指南与示范
  • @Autowired 自动依赖注入
  • 基于接口划分vlan
  • 【AirSim】图像API的使用
  • CSS页面布局