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的乘法逆元
二、拓展欧几里得算法如何得到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

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

被折叠的 条评论
为什么被折叠?



