【数学笔记】19-什么是欧几里得算法?

本文详细介绍了欧几里得算法,一种快速求解两个整数最大公约数的方法,包括最大公约数的定义、欧几里得算法的步骤以及第4条规则的证明过程。
摘要由CSDN通过智能技术生成

什么是欧几里得算法?

欧几里得算法是求两个整数最大公约数的快速算法。

一、最大公约数The Greatest Common Divisor

如果整数A能被p整除,A就叫p的倍数,而p就是A的约数。例如25能被5整除,25是5的倍数,5就是25的约数。

几个整数共有的约数,叫做这几个整数的公约数。其中最大的公约数,叫做这几个数的最大公约数,简写成GCD---the Greatest Common Divisor。

例1:

整数25一共有3个约数,分别是1、5、25;

整数40一共有8个的约数分别是1、2、4、5、8、10、20、40;

25和40共有2个公约数,分别是1、5,最大公约数是5.

用纯数学语言给最大公约下定义:

如果两个整数A和B有n(n≥1)个公约数P1,P2,,,,Pn,而且P1<P2<....<Pn,则Pn是A和B的最大公约数,写成如下形式:

Pn=GCD(A,B)

二、欧几里得算法The Euclidean Algorithm

欧几里得算法是一种快速找到两个整数的最大公约数GCD的方法,也被称为“辗转相除法”。

欧几里得算法建立在如下4条规则基础之上:

如果A=0,则GCD(A,B)=B;

如果B=0,则GCD(A,B)=A;

如果A≠0,B≠0,则A=B∙Q+R,其中Q是B除A的商,R是余数。

例:

设:A=43,B=5

则:A=5x8+3,其中8是商Q,3是余数R

GCD(A,B)= GCD(B,R),即A和B的最大公约数等于B和R的最大公约数。

例:找出270和192的最大公约数GCD(270,192)

第一步:

A=270,B=192

270=192x1+78,即B=192,Q=1,R=78;

第二步:

因GCD(270,192)=GCD(192,78)

对GCD(192,78)重复第一步的演算:

A=192,B=78

192=78x2+36,即Q=2,R=36;

第三步:

因GCD(192,78)=GCD(78,36)

对GCD(78,36)重复第一步(或第二步)演算:

A=78, B=36

78=36x2+6,即Q=2,R=6

第四步:

因GCD(78,36)=GCD(36,6)

对GCD(36,6)重复第一步演算:

A=36,B=6

36=6x6+0,即Q=6,R=0

第五步:

因为:GCD(A,0)=0

所以:GCD(6,0)=6

结果:

因为:

GCD(270,192)=GCD(192,78)=GCD(78,36)=GCD(36,6)=GCD(6,0)

所以:

GCD(270,192)=6,即270和192的最大公约数是6。

三、欧几里得算法第4条规则的证明

欧几里得算法的第4条规则是A和B的最大公约数GCD(A,B),等于B和R的最大公约数 GCD(B,R),其中Q是B除A的商,R是余数,即A=B·Q+R。

为什么GCD(A,B)=GCD(B,R)?

为了证明这个等式,我们先来证明:

GCD(A,B)=GCD(A, A-B),其中A>B。

设:C=A-B,A、B、C是三个整数;

设:n是A和B的公约数;

C/n=(A-B)/n=A/n-B/n;A/n是整数,B/n也是整数,C/n也一定是整数。

所以:n也是C的约数;

因此:n是A、B、C这三个整数的公约数;

设:m是A的约数,但非B的约数;

C/m=(A-B)/m=A/m-B/m;A/m是整数,而B/m非整数,故C/m也一定是非整数;

所以:m一定不是C的约数;

同理,非A的约数,也一定不是C的约数;

因此,A和B的公约数一定是A、B、C的公约数;只有A和B的公约数才是A、B、C的公约数;A和C公约数;B和C的公约数。

因此得出结论:GCD(A,B)=GCD(A,C)

接下来证明:GCD(A,B)=GCD(B,R)

已知:GCD(A,B)=GCD(A,A-B)=GCB(A-B,B)=GCD(C,B)

同理:GCD(C,B)=GCD(C-B,B)=GCD(A-B-B,B)=GCD(A-2B,B)

不断重复上述操作,可以得到:

GCD(A,B)=GCD(C,B)=GCD(A-2B,B)=GCD(A-Q·B,B)

因为:A=Q·B+R,所以:A-Q·B=R

因此:GCD(A-Q·B,B)=GCD(R,B)=GCD(B,R)

结论:GCD(A,B)=GCD(B,R)

证明完毕!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值