现在的位置: 首页 > 综合 > 正文

素质系列(1)-数学魅力(二):扩充欧几里德算法

2012年03月03日 ⁄ 综合 ⁄ 共 1237字 ⁄ 字号 评论关闭
Code

 

算法讲解:(现在没时间了,得上班,呵呵,下来有空再详细讲解)

 

算法思想:

 

欧几里德定理大致是这样的:

存在整数 a,ba,b的最大公约数gcd(a,b)

那么必然存在x,y使得ax+by=gcd(a,b)

 

思想:前提,欧几里德定义

假设:ax1+by1 = gcd(a,b)成立,如果b=0那么gcd(a,b) = 0;

此时令x1=1,y1=0即可得到正解

如果b!=0那么gcd(b,a% b) = gcd(b,a-a/b*b)

那么根据我们的假设有 bx2 + (a-a/b*b))y2 = gcd(b,a-a/b*b)

因而 ax1 + by1 = bx2 + (a-a/b*b))y2 = ay2 + (x2-a/by2)b

故而有 x1 = y2, y1 = x2 – a/by2

,对于任意的a,b 如果 b!=0就进行如下迭代 a = b, b = a%b

最终必然有 b=0

那么我们可以根据上述定理来进行迭代求解

a

b

a/b

r

X=1

Y=0

15

9

1

6

1

0

9

6

1

3

0

-1

6

3

2

0

-1

2

3

0

END

END

ENE

END

 

 

 

 

 

 

 

 

 

 

 

 

 

【上篇】
【下篇】

抱歉!评论已关闭.