扩展欧几里得算法求逆元

本文介绍了扩展欧几里得算法,主要用于解决方程ax+by=c的整数解问题,特别是在RSA加密中求逆元的应用。当gcd(a, b)能整除c时,方程有解。算法通过递归处理边界情况和一般情况,最终求得逆元。在迭代过程中,x和y的关系不断更新,直至找到满足xx' ≡ 1 (mod b)的逆元x'。" 84329893,8175152,C++中的静态成员详解,"['C++编程', '面向对象', '静态成员']
摘要由CSDN通过智能技术生成

最近经常会遇到RSA的题目,都会用到扩展欧几里得算法来求逆元,所以去系统的学习了一下这个算法的原理。
先奉上dalao的博客 https://blog.sengxian.com/algorithms/gcd-extgcd

前置说明

a | b 表示:a可以整除b

用途

扩展欧几里得算法是用来求解方程 a x + b y = c ( a , b , c ∈ Z ) ax + by = c (a,b,c \in Z) ax+by=c(a,b,cZ)

可解条件

g c d ( a , b ) ∣ c gcd(a, b) | c gcd(a,b)c

实现

记 exgcd(a, b, x, y) 为求解方程 a x + b y = g c d ( a , b ) ax + by = gcd(a,b) ax+by=gcd(a,b) 的函数

先考虑边界情况
当b = 0时,有 ax = gcd(a, 0) 解得 { x = 1 y = 0 \left\{\begin{aligned}x&=1\\y&=0\end{aligned}\right. { xy=1=0
对于一般情况,设 a ′ = a a^{'} = a a=a, b ′ = a % b b^{'} = a \% b b=a%b
则有:
a ′ x ′ + b ′ y ′ = g c d ( a ′ , b ′ ) = g c d ( b , a % b ) a^{'} x^{'} + b^{'} y^{'}=gcd(a^{'}, b^{'}) =gcd(b, a\%b) a

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值