欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数。
扩展欧几里德算法是求a*x+b*y=gcd(a,b)的线性方程。
查找了相关资料,下面是理解内容:
我们令a>b
①当b=0,显然gcd(a,b)=a,此时x=1,y任意;
②当b!=0
假设a*x1+b*y1=gcd(a,b);
b*x2+(a%b)*y2=gcd(b,a%b)=gcd(a,b)
则a*x1+b*y1=b*x2+(a%b)*y2
=>a*x1+b*y1=b*x2+(a-[a/b]*b)*y2
=>a*x1+b*y1=a*y2+b*(x2-[a/b]*y2);
那么x1=y2;y1=(x2-[a/b]*y2);