浅谈欧几里得算法(辗转相除法)证明

大兔子大兔子 提交于 2019-11-28 05:08:40

前言

之前只知道一味的背辗转相除法的biao,连它是欧几里得算法都不知道,所以决定写一篇证明

百度百科了解一下

欧几里德算法又称辗转相除法,是指用于计算两个正整数a,b的最大公约数。应用领域有数学和计算机两个方面。

计算公式gcd(a,b) = gcd(b,a mod b)。//这就是我接下来要证明的东东

证明

假设

1.求n、m的最小公倍数

2、a、b分别是 m div n 和 m mod n,即 m = na + b

3、gcd(m,n)表示m、n的最大公因数

求证:gcd(m,n) = gcd(n,b),也就是gcd(x,y)=gcd(y,x mod y)//上面说的那个

 

证:设c=gcd(m,n),d=gcd(n,b)

(1):

因为 c 为m,n的公因数

所以 c | m,c | n                                   //“|” 是整除符号,x | y代表x是y的因数

所以 c | na                                          //n乘任意整数都是c的倍数
所以 c | (m - na) 即 c | b                //因为m和na都是c的倍数,所以相减也是

所以 c 为 n,b 的公因数

因为 d 是 n,b 的最大公因数

所以 c <= d

(2):同理可证 d <= c

因为 d 为n,b的公因数

所以 d | n , d | b                                   //“|” 是整除符号,x | y代表x是y的因数

所以 d | na                                          //n乘任意整数都是d的倍数
所以 d | ( na+b) 即 d | m                //因为m和na都是c的倍数,所以相加也是

所以 d 为 m,n 的公因数

因为 c 是 m,n 的最大公因数

所以 d <= c

综上所述:c = d,即gcd(m,n) = gcd(n,b)   证毕。

推论1:若 b | a(a=tb),则若 k >= 0, b | ka (ka = k*tb)

推论2:若 c | a,c | b,则 c | (a +- b)

总结

自我感jio良好,觉得证得挺清楚的,应该都能看懂,希望对大家有所帮助。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!