拓展欧几里得算法参考博客及例题汇集(更新中)

本文详细介绍了拓展欧几里得算法,包括算法原理、如何找到ax+by=gcd(a,b)的特解,以及求解ax+by=c的通解和最小解的方法。同时探讨了在算法竞赛和实际问题中的应用,如求乘法逆元,并提供了相关练习题目和解题链接。" 75566706,5782869,Arrays.sort()的快速排序优化策略详解,"['排序算法', '快速排序的优化']

Extended Euclidean algorithm

参考博客

一、学习前需知道的一些东西

欧几里得算法:即辗转相除法。

裴蜀定理:若a,b是整数,且gcd(a,b)=d,那么对于任意的整数x , y:ax+by都一定是d的倍数,特别地,一定存在整数x , y,使ax+by=d成立。( 它的一个重要推论是:a,b互质的充要条件是存在整数x,y使ax+by=1,这个推论在学习拓展欧几里得算法不用 )拓展欧几里得能在算出a与b最大公约数的同时算出ax+by=gcd(a,b)的一组特解(x0,y0)。

乘法逆元
x是a关于m的乘法逆元
我们称x是a关于m的乘法逆元

二、拓展欧几里得算法如何得到ax+by=gcd(a,b)的一组特解

改自参考博客

欧几里德算法停止的状态是: a= gcd , b = 0 ,那么,这是否能给我们求解 x0 ,y0 提供一种思路呢?

因为,这时候,只要 a = gcd 的系数是 1 ,那么只要 b 的系数是 0 或者其他值(无所谓是多少,反正任何数乘以 0 都等于 0 但是a 的系数一定要是 1),这时,我们就会有: a * 1 + b * 0 = gcd

当然这是最终状态,但是我们是否可以从最终状态反推到最初的状态呢?

假设当前我们要处理的是求出 a 和 b的最大公约数,并求出 x 和 y 使得 ax + b

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值