首页
社区
课程
招聘
学习gcd算法,求指点
发表于: 2006-8-2 21:26 5165

学习gcd算法,求指点

2006-8-2 21:26
5165

用辗转相除求gcd,没学过数论相关知识,用初中数学试图证明,不知道是否正确?

求 x=gcd(A,B)

设 A=xa B=xb 其中 gcd(a,b)=1

设 C=A mod B=A-[A/B]B=x(a-[a/b])=cx

c/b=(a-[a/b])/b 由于gcd(a,b)=1, 此式不能约分 *

即gcd(b,c)=1 ==> gcd(B,C)=x=gcd(A,B)

因此p-1轮辗转相除中gcd不改变

迭代 p 轮后, M mod N=0 ==> M = kN ==> gcd(M,N)=N

因此 gcd(A,B)=gcd(B,C)=...=gcd(M,N)=N

我感觉带*那里有点问题,不知道对否,望指点.


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 7
支持
分享
最新回复 (3)
雪    币: 398
活跃值: (343)
能力值: (RANK:650 )
在线值:
发帖
回帖
粉丝
2
gcd算法这个名字比较好,很亲切
我只记得一点点,可能说得不准确,书上大概是这样的

不防设A > B
那么A  = q1 *  B + r1               (1)
    B  = q2 * r1 + r2               (2)
    r1 = q3 * r2 + r3               (3)
    r2 = q4 * r3 + r4               (4)
    ...
    r(n-2) = q(n) * r(n-1) + r(n)   (5)
    r(n-1) = q(n+1) * r(n) + 0      (6)

(6) -> r(n)是r(n-1)的因子
(5) -> 因为r(n)是r(n-1)的因子,所以这里r(n) 是r(n-2)的因子
(4) -> r(n)是r2的因子
..
(2) -> r(n)是B的因子
(1) -> r(n)是A的因子
2006-8-2 21:29
0
雪    币: 433
活跃值: (176)
能力值: ( LV13,RANK:1250 )
在线值:
发帖
回帖
粉丝
3
辗转相除法的依据说穿了就一条:(a, b) = (a-b, b)
至于这是为什么?
首先你承认这个事实否:a与b的任何公因子都能整除(a, b)?
好,你承认就好办了。
a与b的任何公因子显然也能整除a-b,因此也是a-b与b的公因子,
特别地(a, b)也是a-b与b的公因子,因此:(a, b)整除(a-b, b)
反过来,a-b与b的任何公因子显然也能整除a = (a-b) + b,
因此也是a与b的公因子,特别地,(a-b, b)也是a与b的公因子,
因此:(a-b, b)整除(a, b)。

综上所述,(a-b, b)与(a, b)彼此整除对方,它们只能相等。
2006-8-2 22:32
0
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
4
感谢两位。
欧几里德真是厉害。
2006-8-3 21:43
0
游客
登录 | 注册 方可回帖
返回
//