欧几里德算法的证明

欧几里德算法又称辗转相除法,用于计算两个正整数a,b的最大公约数。其计算原理依赖于下面的定理:
定理:gcd(a,b) = gcd(b,a mod b) (a>b 且a mod b 不为0)
证明:a可以表示成a = kb + r,则r = a mod b
假设d是a,b的一个公约数,则有
d|a,d|b,而r = a - kb,因此d|r
因此d也是(b,a mod b)的公约数
因此(a,b)和(b,a mod b)的公约数是一样的,其最大公约数也必然相等,得证

【来自百度百科】上述“d|a,d|b,而r = a - kb,因此d|r”这一步的证明:
d|a,d|b则有如下两点:
a/d=n、b/d=m。其中n、m是整数。则(xa+yb)/d=nx+my.也即:d|(xa+yb)。其中x、y是整数。
 
 
------------------分割线----------分割线------------分割线----------分割线-----------------------
 
下面是另一个证明过程,同样是出自百度百科。
 
设两数为a、b(a>b),用gcd(a,b)表示a,b的最大公约数,r=a  mod b ,  是a除以b的余数,k为a除以b的商,即a÷b=k.......r。
辗转相除法即是要证明gcd(a,b)=gcd(b,r)。
证明过程如下:
第一步:令c=gcd(a,b)≠0,则设a=mc,b=nc。   (注意:因为a与b的最大公约数是c,所以m与n必然互质。)
第二步:根据前提可知r =a-kb=mc-knc=(m-kn)c
第三步:根据第二步结果可知c也是r的因数
第四步:可以断定m-kn与n互质,因此c也是b与r的最大公约数。
(关于“m-kn与n互质”的断定,可以用反证法来证明:假设“m-kn与n不互质”,则有m-kn=xd,n=yd (d>1),于是m=kn+xd=kyd+xd=(ky+x)d,则a=mc=(ky+x)cd,b=nc=ycd,则a与b的一个公约数cd>c,故c非a与b的最大公约数,与前面假设c=gcd(a,b)互相矛盾,所以“m-kn与n不互质”不成立。)
从而可知gcd(b,r)=c,继而gcd(a,b)=gcd(b,r)。
证毕。
注意:以上步骤的操作是建立在刚开始时r≠0的基础之上的。即m与n亦互质。
 
 
 

posted on   华山青竹  阅读(659)  评论(0编辑  收藏  举报

编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示