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

求两个正整数最大公约数算法.ppt

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
求两个正整数最大公约数算法

求两个正整数 最大公约数的算法 学习目标: (1)了解中国古代数学中求两个正整数最大公约数的算法以及割圆术的算法; (2)通过对“更相减损之术”及“割圆术”的学习,更好的理解将要解决的问题“算法化”的思维方法,并注意理解推导“割圆术”的操作步骤。 (3)学会借助实例分析,探究数学问题。 人们在长期的生活,生产和劳动过程中,创造了整数,分数,小数,正负数及其计算,以及无限逼近任一实数的方法,在代数学,几何学方面,我国在宋,元之前也都处于世界的前列。我们在小学,中学学到的算术,代数,从记数到多元一次联立方程的求根方法,都是我国古代数学家最先创造的。更为重要的是我国古代数学的发展有着自己鲜明的特色,也就是“寓理于算”,即把解决的问题“算法化”。本章的内容是算法,特别是在中国古代也有着很多算法案例,我们来看一下并且进一步体会“算法”的概念。 求最大公约数 你能求出18与30的公约数吗? 你能看出78与36的公约数吗? 更相减损之术(指导阅读课本P27----P28) 步骤: 以两数中较大的数减去较小的数,即78-36=42;以差数42和较小的数36构成新的一对数,对这一对数再用大数减去小数,即42-36=6,再以差数6和较小的数36构成新的一对数,对这一对数再用大数减去小数,即36-6=30,继续这一过程,直到产生一对相等的数,这个数就是最大公约数 即, 由 ,得 与 有相同的公约数 理论依据: 算法: 输入两个正数 如果 ,则执行 ,否则转到 将 的值赋予 若 ,则把 赋予 ,把 赋予 ,否则把 赋予 ,重新执行 输出最大公约数 程序: a=input(“a=”) b=input(“b=”) while ab if a=b a=a-b; else b=b-a; end end print(%io(2),a,b) 我国早期也有解决求最大公约数问题的算法,就是更相减损术。 更相减损术求最大公约数 可半者半之,不可半者,副置分母分子之数,以少减多,更相减损,求其等也,以等数约之。 翻译出来为: 第一步:任意给出两个正数;判断它们是否都是偶数。若是,用2约简;若不是,执行第二步。 第二步:以较大的数减去较小的数,接着把较小的数与所得的差比较,并以大数减小数。继续这个操作,直到所得的数相等为止,则这个数(等数)就是所求的最大公约数。 例1 用更相减损术求91与49的最大公约数. 更相减损术的应用 解:由于49不是偶数,把91和49以大数减小数,并辗转相减, 即:91-48=42 49-42=7 42-7=35 35-7=28 28-7=21 21-7=14 14-7=7 所以,91与49的最大公约数是7。 例2 求两个正数a=204和b=85的最大公约数。 辗转相除法求最大公约数 分析:204与85两数都比较大,而且没有明显的公约数,如能把它们都变小一点,根据已有的知识即可求出最大公约数 204=85×2+34 显然204的最大公约数也必是85的约数,同样204与85的公约数也必是34的约数,所以204与85的最大公约数也是85与34的最大公约数。 85=34×2+17 34=17×2+0 则17为204与85的最大公约数。 辗转相除法的基本步骤: 第一步:用较大的数m除以较小的数n得到一个商q0和一个余数r0; 第二步:若r0=0,则n为m,n的最大公约数;若r0≠0,则用除数n除以余数r0得到一个商q1和一个余数r1; 第三步:若r1=0,则r1为m,n的最大公约数;若r1≠0,则用除数r0除以余数r1得到一个商q2和一个余数r2; …… …… 依次计算直至rn=0,此时所得到的rn-1即为所求的最大公约数。 程序框图: a=input(“a=”); b=input(“b=”); While modulo(a,b)0, r=modulo(a,b); a=b;b=r; end d=b 开始 输入a,b 求a除以b的余数r a=b b=r r=0 ? 结束 输出b 是 否 程序: 比较辗转相除法与更相减损术的区别 (1)都是求最大公约数的方法,计算上辗转相除法以除法为主,更相减损术以减法为主,计算次数上辗转相除法计算次数相对较少,特别当两个数字大小区别较大时计算次数的区别较明显。 (2)从结果体现形式来看,辗转相除法体现结果是以相除余数为0则得到,而更相减损术则以减数与差相等而得到。 巩固运用 求196和147的最大公约数 回顾反思 辗转相除法是当大数被小数除尽时,结束除法运算,较小的数就是最大公约数. 更相减损术是当大

文档评论(0)

yaocen + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档