网站大量收购独家精品文档,联系QQ:2885784924

欧几里得算法.pptxVIP

欧几里得算法.pptx

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
欧几里得算法数学算法 01算法简介算法原理算法版本计算证明程序设计目基本信息欧几里得算法又称辗转相除法,是指用于计算两个非负整数a,b的最大公约数。应用领域有数学和计算机两个方面。计算公式gcd(a,b) = gcd(b,a mod b)。欧几里得算法和扩展欧几里得算法可使用多种编程语言实现。 算法简介 算法简介欧几里得算法是用来求两个正整数最大公约数的算法。古希腊数学家欧几里得在其著作《The Elements》中最早描述了这种算法,所以被命名为欧几里得算法。扩展欧几里得算法可用于RSA加密等领域。假如需要求 1997和 615两个正整数的最大公约数,用欧几里得算法,是这样进行的:1997 ÷ 615 = 3 (余 152)615 ÷ 152 = 4(余7)152 ÷ 7 = 21(余5)7 ÷ 5 = 1 (余2)5 ÷ 2 = 2 (余1)2 ÷ 1 = 2 (余0)至此,最大公约数为1 计算证明 证法二证法一计算证明 证法一a可以表示成a = kb + r(a,b,k,r皆为正整数,且r不为0)假设d是a,b的一个公约数,记作d|a,d|b,即a和b都可以被d整除。而r = a - kb,两边同时除以d,r/d=a/d-kb/d,由等式右边可知m=r/d为整数,因此d|r因此d也是b,a mod b的公约数。因(a,b)和(b,a mod b)的公约数相等,则其最大公约数也相等,得证。 证法二假设c = gcd(a,b),则存在m,n,使a = mc, b = nc;令r = a mod b,即存在k,使r = a-kb = mc - knc = (m-kn)c;故gcd(b,a mod b) = gcd(b,r) = gcd(nc,(m-kn)c) = gcd(n,m-kn)c;则c为b与a mod b的公约数;假设d = gcd(n,m-kn),则存在x,y,使n = xd, m-kn = yd;故m = yd+kn = yd+kxd = (y+kx)d;故有a = mc = (y+kx)dc, b = nc = xdc;可得 gcd(a,b) = gcd((y+kx)dc,xdc) = dc;由于gcd(a,b) = c,故d = 1;即gcd(n,m-kn) = 1,故可得gcd(b,a mod b) = c;故得证gcd(a,b) = gcd(b,a mod b).注意:两种方法是有区别的。 算法原理 算法原理Lemma 1.3.1若 a,b且 a = bh + r,其中 h,r,则 gcd(a,b) = gcd(b,r)。 ?证明.假设 d1 = gcd(a,b)且 d2 = gcd(b,r),证明 d1| d2且 d2| d1,因而可利用 Proposition 1.1.3⑵以及 d1,d2皆为正数得证 d1 = d2。因 d1| a且 d1| b利用 Corollary 1.1.2知 d1| a - bh = r.因为 d1| b,d1| r且 d2 = gcd(b,r)故由 Proposition 1.2.5知 d1| d2.另一方面,因为 d2| b且 d2| r故 d2| bh + r = a.因此可得 d2| d1。Lemma 1.3.1告诉当 a b 0时,要求 a,b的最大公因数我们可以先将 a除以 b所得余数若为 r,则 a,b的最大公因数等于 b和 r的最大公因数.因为 r b a,所以当然把计算简化了,接着我们就来看看辗转相除法.由于 gcd(a,b) = gcd(- a,b)所以我们只要考虑 a,b都是正整数的情况。Theorem 1.3.2 (The Euclidean Algorithm)假设 a,b且 a b.由除法原理知存在 h0,r0使得欧几里得算法a = bh0 + r0,其中 r0 b.若 r0 0,则存在 h1,r1使得b = r0h1 + r1,其中 0r1 r0. 程序设计 程序设计辗转相除法是利用以下性质来确定两个正整数 a和 b的最大公因子的:⒈若 r是 a ÷ b的余数,且r不为0,则gcd(a,b) = gcd(b,r)⒉ a和其倍数之最大公因子为 a。另一种写法是:⒈令r为a/b所得余数(0≤r若 r= 0,算法结束;b即为答案。⒉互换:置 a←b,b←r,并返回第一步。 算法版本 算法版本Swift语言版本Go语言版本Pascal语言版C语言版Ruby语言版C++版Java版JavaScript版Python版Erlang版Rust版 谢谢观看

文档评论(0)

智慧城市智能制造数字化 + 关注
实名认证
文档贡献者

高级系统架构设计师持证人

该用户很懒,什么也没介绍

领域认证该用户于2023年07月09日上传了高级系统架构设计师

1亿VIP精品文档

相关文档