前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >乘法逆元

乘法逆元

作者头像
fishhh
发布2022-08-31 15:14:00
7790
发布2022-08-31 15:14:00
举报
文章被收录于专栏:OI算法学习笔记OI算法学习笔记

定义

这里x就是a的逆元。

一个数有逆元的充分必要条件是gcd(a,p)=1,此时逆元唯一存在。

求解逆元的方式

拓展欧几里

若m不为质数,可以使用拓展欧几里得求逆元

根据裴蜀定理,若gcd(a,b)=1则gcd是a,b两个数线性组合的最小值,其他组合都是gcd的倍数。

gcd(a,b)=1,满足

移项得

即ax≡1 mod ,此时的x就是逆元。实际上线性不定方程组有无穷多解,这里只求正的最小逆元

推导过程

扩欧代码

代码语言:javascript
复制
int exgcd(int a,int b,int &x,int &y){
    if(b==0){
        x=1,y=0;
        return a;
    }
    int d=exgcd(b,a%b,x,y);
    int z=x;x=y;y=z-y*(a/b);
    return d;
}

ans=(x%b+b)%b;//x可能是负数,需要处理

费马小定理

若模数p为质数,还可以根据费马小定理求逆元

,此时逆元x可取为

线性求逆元

模数p为质数,可在线性时间推出1∼n的所有逆元。

证明

由上可得出 dp[i]=(p-p/i)*dp[p%i]

常见用途

将对结果取余的较大数字的除法,转成乘法进行计算。

Q.E.D.

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 定义
  • 求解逆元的方式
    • 拓展欧几里
      • 费马小定理
        • 线性求逆元
        • 常见用途
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档