欧几里得算法(辗转相除法)证明过程

今天在读Aditya Bhargava著的《算法图解》的时候,发现了第41页的农场主分地的题目需要一个知识——欧几里得算法,还真是第一次看到实际应用。然后就参照百度的证明学习一下如何证明欧几里得算法。发现百度百科的证明过程确实不是很通俗,这里我就证法1重新描述一下:


定理:两个整数的最大公约数等于其中较小的那个数和两数相除余数的最大公约数。最大公约数(greatest common divisor)缩写为 gcd


gcd(a,b)=gcd(b,amodb)(a>br=amodb,r0)


a 可以表示成 a=kb+r(abkrr<b ),则 r=amodb
假设 d a,b 的一个公约数,即 a b 都可以被 d 整除。
r=akb ,两边同时除以 d ,可得:

rd=adkbd=m

由等式右边可知 m 为整数( a d 的公约数, kbb 的整倍数,所以 kbd 也应该是整数),所以我们得出 d 也为 a b 的余数的公约数即 d b , amodb 的公约数


至此,我们得知,如果一个数是两个数的公约数,那么,它也是这两个数的余数和较小数公约数。


假设 d b,amodb 的任意一个公约数, 则 d b 的公约数, d akb 的公约数, k 是一个整数,
我们假设 b=xd , akb=yd 其中 x,y 是正整数,根据上面的推断可得:

a=yd+kb

两边同时除以 d ,得
ad=y+kbd

由已知可得 y 为正整数, d b 的公约数, kbd 也肯定是正整数,故得 d a 的公约数.
因为 d 既是 b 的公约数又是 a 的公约数了,


所以证出 a,b b,amodb 的公约数是一样的,其最大公约数也必然相等。


欧几里得算法(辗转相除法)证明过程_第1张图片


感谢像欧几里得这样的无数的数学家,是他们带领我们从0开始,从愚昧走向科技。

你可能感兴趣的:(Math)