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

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

 

 

 

 

 

 

 

 

 

 

 

 

 

Tag标签: 素质
posted @ 2008-08-14 19:39 李晓强 阅读(41) 评论(0)  编辑 收藏 网摘

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2008-08-15 09:10 编辑过
Google站内搜索

相关文章:


相关搜索:
素质

相关链接: