如何求解乘法逆元

文章介绍了逆元的概念,包括当两个正整数的最大公约数为1时,其中一个数在模另一个数下的乘法逆元的存在性。同时详细阐述了欧几里得算法及其应用,如求解18和12的最大公因子以及5关于模7的乘法逆元的计算过程。
摘要由CSDN通过智能技术生成

逆元的定义

如果 gcd ⁡ ( a , b ) = 1 \gcd(a, b)=1 gcd(a,b)=1,则b在mod a下有乘法逆元(设 b < a b< a b<a),即存在一个 x x x x < a x<a x<a),使得 b x ≡ 1   m o d   a bx \equiv 1 \bmod a bx1moda x x x就是 b b b   m o d   a \bmod a moda下的乘法逆元。

欧几里得(Euclid)算法

欧几里得算法如下:设 a , b a,b ab是任意两个正整数,记 r 0 = a , r 1 = b r_{0} =a,r_{1}=b r0=a,r1=b,反复用辗转相除法,有:
r 0 = r 1 q 1 + r 2 , 0 ≤ r 2 < r 1 r_{0} =r_{1}q_{1} +r_{2}, 0\le r_{2}< r_{1} r0=r1q1+r2,0r2<r1
r 1 = r 2 q 2 + r 3 , 0 ≤ r 3 < r 2 r_{1} =r_{2}q_{2} +r_{3}, 0\le r_{3}< r_{2} r1=r2q2+r3,0r3<r2
⋯ \cdots
r n − 1 = r n q n + r n + 1 , r n + 1 = 0 r_{n-1} =r_{n}q_{n} +r_{n+1}, r_{n+1}=0 rn1=rnqn+rn+1,rn+1=0
由于 r 1 = b > r 2 > ⋯ > r n > r n + 1 ≥ 0 r_{1 }=b>r_{2}>\cdots >r_{n}>r_{n+1}\ge 0 r1=b>r2>>rn>rn+10,经过有限步后,必然存在n使得 r n + 1 = 0 r_{n+1}=0 rn+1=0。可得到 gcd ⁡ ( a , b ) = r n \gcd(a, b) =r_{n} gcd(a,b)=rn,即辗转相除法中最后一个非0余数就是 a a a b b b的最大公因子。
例题如下:
gcd ⁡ ( 18 , 12 ) \gcd(18, 12) gcd(18,12)
18 = 12 × 1 + 6 18=12×1+6 18=12×1+6
12 = 6 × 2 + 0 12=6×2+0 12=6×2+0
所以 gcd ⁡ ( 18 , 12 ) = 6 \gcd(18, 12)=6 gcd(18,12)=6

推广的欧几里得算法

推广的欧几里得算法可以用来求解一个数关于另一个数的乘法逆元。
例题如下:
求解5关于模7的乘法逆元 x x x
5 x ≡ 1   m o d   7 5x \equiv 1 \bmod 7 5x1mod7
即满足: 5 x = 7 k + 1 5x= 7k+1 5x=7k+1
7 = 5 × 1 + 2 7= 5×1+2 7=5×1+2,则 2 = 7 − 5 × 1 2= 7-5×1 2=75×1
5 = 2 × 2 + 1 5= 2×2+1 5=2×2+1
得到: 5 = 2 × ( 7 − 5 ) + 1 5= 2×(7-5)+1 5=2×(75)+1
5 = 7 × 2 − 5 × 2 + 1 5= 7×2-5×2+1 5=7×25×2+1
5 × 3 = 7 × 2 + 1 5×3= 7×2+1 5×3=7×2+1
对比 5 x = 7 k + 1 5x= 7k+1 5x=7k+1得到 x = 3 x= 3 x=3
所以5对于模7的乘法逆元是3。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值