浅谈 逆元&乘法逆元

逆元

除以一个数再取模 = 乘以这个数的逆元再取模

设 inv[b] 是b的逆元,则(a/b) mod p = (a * inv[b]) mod p

(1)一个数的逆元是什么   一个数x在模p的条件下的逆元是多少

(2)一个数的逆元有无穷个,只求最小正整数即可

(3)一个数x在模p的条件下不一定有逆元,x关于p的逆元存在当且仅当x和p互质

推导:设 a 为 x 的逆元,b 为任意整数     //证明 x 与 p 必须互质

x * a ≡ 1 (mod p)

= x * a = 1 - b*p

= x * a +b * p = 1

若 x 与 p 不互质,则 x 和 p 存在公约数 d = gcd(x,p) >1

提取出 d ,得到:d*(x div d*a + p div d*b)=1

                                 (x div d*a + p div d*b)= 1 div d           //移项

易知x,p能整除 d ,所以括号内定为整数

又因为 d > 1,等式右边必为真分数,等式无解

何为乘法逆元

对于两个数 a,p,若gcd(a,p)=1 (即a,p互质),则一定存在另一数b,使得a*b ≡ 1(mod p) //上面已证

并称此时的 b 为 a 关于 1 模 p 的乘法逆元,记 b 为 inv(a) 或 a^-1。

求逆元的方法

 

1.费马小定理

当有两个数 a,p 满足gcd(a,p)=1时,则有 a^p ≡ a (mod p)

变形:a * a^(p-2)≡ 1ÿ

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值