扩展欧几里得算法证明

已知:
ax + by = gcd(a, b)
a'x' + b'y' = gcd(a', b') (其中a'= b, b' = a % b,)
我们要得到x,y与x',y'的关系

证明:
将a'= b, b' = a % b带入第一个等式
得:bx' + (a%b)y' = gcd(a', b')
因为a%b = a - b[a/b] ([a/b],取a除以b的整数)
所以ay' + b(x' - [a/b]
y') = gcd(a', b') = gcd(a,b)(由辗转相除得)
所以,x,y,x',y'的关系是:

x=y'
y=x' - [a/b] * y'

这样就可以用递推公式,不断向下得到x',y'。

猜你喜欢

转载自www.cnblogs.com/wudongwei/p/9376906.html