【高中数学必修三】1.3.1辗转相除法与更相减损术_第1页
【高中数学必修三】1.3.1辗转相除法与更相减损术_第2页
【高中数学必修三】1.3.1辗转相除法与更相减损术_第3页
【高中数学必修三】1.3.1辗转相除法与更相减损术_第4页
【高中数学必修三】1.3.1辗转相除法与更相减损术_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1.3.1 案例案例1、辗转相除法与更相减损术、辗转相除法与更相减损术 回顾算法的三种表示方法:回顾算法的三种表示方法:(1)、自然语言)、自然语言(2)、程序框图)、程序框图(3)、程序语言)、程序语言(三种逻辑结构)(三种逻辑结构)(五种基本语句)(五种基本语句)复习引入复习引入 思考:思考:小学学过的求两个数最大公约数的方法?小学学过的求两个数最大公约数的方法? 先用两个公有的质因数连续去除,一直除到所得先用两个公有的质因数连续去除,一直除到所得的商是互为质数为止,然后把所有的除数连乘起来的商是互为质数为止,然后把所有的除数连乘起来. .解:解:2 1 8 2 4 用公有质因数用公有质因

2、数2除,除, 3 9 1 2 用公有质因数用公有质因数3除,除, 3 4 3和和4互质不除了。互质不除了。 得:得:18和和24最大公约数是:最大公约数是:236 问题:如何求问题:如何求8251与与6105的最大公约数?的最大公约数?( 8251 ,6105 )=? 例、求例、求18与与24的最大公约数:的最大公约数:用辗转相除法求用辗转相除法求8251和和6105的最大公约数的过程的最大公约数的过程 第一步第一步 用两数中较大的数除以较小的数,求得商和余数用两数中较大的数除以较小的数,求得商和余数 8251=61051+2146结论:结论: 8251和和6105的公约数就是的公约数就是61

3、05和和2146的公约数,求的公约数,求8251和和6105的最大公约数,只要求出的最大公约数,只要求出6105和和2146的公约数就可以了。的公约数就可以了。 (8251 , 6105 )=(6105 , 2146 ) 第二步第二步 对对6105和和2146重复第一步的做法重复第一步的做法 6105=21462 + 1813 辗转相除法(欧几里得算法)辗转相除法(欧几里得算法) 同理同理6105和和2146的最大公约数也是的最大公约数也是2146和和1813的最大公约数。的最大公约数。 (8251 , 6105 )=(6105 , 2146 ) =(2146 ,1813)以此类推以此类推完整

4、的过程完整的过程8251=61051+2146 6105=21462+1813 2146=18131+3331813=3335+148333=1482+37148=374+0例例2 用辗转相除法求用辗转相除法求225和和135的最大公约数的最大公约数225=1351+90135=901+4590=452显然显然37是是148和和37的最大公约的最大公约数,也就是数,也就是8251和和6105的最的最大公约数大公约数 显然显然45是是90和和45的最大公约数,也就是的最大公约数,也就是225和和135的最大公约数的最大公约数 思考思考1:从上面的两个例子可以看出计:从上面的两个例子可以看出计算的

5、规律是什么?算的规律是什么? 第一步:用大数除以小数第一步:用大数除以小数第二步:第二步:除数除数变成变成被除数被除数,余数余数变成变成除数除数第三步:重复第一步,直到第三步:重复第一步,直到余数为余数为0时的时的 除数除数即为最大公约数即为最大公约数辗转相除法(欧几里得算法)辗转相除法(欧几里得算法) 所谓辗转相除法所谓辗转相除法, ,就是对于给定的两个数就是对于给定的两个数, ,用用较大的数除以较小的数较大的数除以较小的数. .若余数不为零若余数不为零, ,则将则将除数除数变成变成被除数被除数,余数余数变成变成除数除数, ,继续上面的除法继续上面的除法, ,直直到余数为到余数为0,0,则这

6、时的除数就是原来两个数的最大则这时的除数就是原来两个数的最大公约数公约数. .练习:利用辗转相除法求两数练习:利用辗转相除法求两数4081与与20723的最大公约数的最大公约数(答案:(答案:53) 辗转相除法是一个反复执行直到余数等于辗转相除法是一个反复执行直到余数等于0停止的步骤,停止的步骤,这实际上是一个循环结构。这实际上是一个循环结构。8251=61051+2146 6105=21462+1813 2146=18131+3331813=3335+148333=1482+37148=374+0m = n q r用程序框图表示出右边的过程用程序框图表示出右边的过程r=m MOD nm =

7、nn = rr=0?是是否否思考思考3:你能把辗转相除法编成一个计算机程序吗?你能把辗转相除法编成一个计算机程序吗?算法步骤:算法步骤:第一步:输入两个正整数第一步:输入两个正整数m,n(mn).第二步:计算第二步:计算m除以除以n所得的余数所得的余数r.第三步:第三步:m=n,n=r.第四步:若第四步:若r0,则则m,n的最大公约数等于的最大公约数等于m; 否则转到第二步否则转到第二步. 第五步:输出最大公约数第五步:输出最大公约数m.r=m MOD nr=m MOD nm=nm=n是是否否n=rn=r开始开始输入输入m,nm,nr=0?r=0? 输出输出m m结束结束程序框图:程序框图:I

8、NPUT m,nDO r=m MOD n m=n n=rLOOP UNTIL r=0PRINT mEND程序:程序:课后必做作业:课后必做作业: 请同学们课后阅读教材,理解并掌握辗转相除法的请同学们课后阅读教材,理解并掌握辗转相除法的程序设计程序设计更相减损术更相减损术我国早期也有解决求最大公约数问题的算法,就是我国早期也有解决求最大公约数问题的算法,就是更相减损术更相减损术。更相减损术求最大公约数的步骤如下:更相减损术求最大公约数的步骤如下: 可半者半之,不可半者,副置分母、子之数,可半者半之,不可半者,副置分母、子之数, 以少减多,更相减损,求其等也,以等数约之。以少减多,更相减损,求其等

9、也,以等数约之。翻译出来为:翻译出来为:第一步:任意给出两个正数;判断它们是否都是偶数。若是,用第一步:任意给出两个正数;判断它们是否都是偶数。若是,用 2 2约简;若不是,执行第二步。约简;若不是,执行第二步。第二步:以较大的数减去较小的数,接着把所第二步:以较大的数减去较小的数,接着把所得的差与得的差与较小的数较小的数 比较,并以大数减小数。继续这个操作,直到所得的数比较,并以大数减小数。继续这个操作,直到所得的数 相等为止,则相等为止,则这个数(等数)或这个数与约简的数的乘这个数(等数)或这个数与约简的数的乘 积积就是所求的最大公约数。就是所求的最大公约数。更相减损术更相减损术第一步第一

10、步:任意给出两个正数;判断它们是否都是偶数。若是,用:任意给出两个正数;判断它们是否都是偶数。若是,用2 2约简;约简;若不是,执行第二步。若不是,执行第二步。第二步第二步:以较大的数减去较小的数,接着把所得的差与较小的数比较,:以较大的数减去较小的数,接着把所得的差与较小的数比较,并以大数减小数。继续这个操作,直到所得的数相等为止,则并以大数减小数。继续这个操作,直到所得的数相等为止,则这个数这个数(等数)或这个数与约简的数的乘积(等数)或这个数与约简的数的乘积就是所求的最大公约数。就是所求的最大公约数。例例 用更相减损术求用更相减损术求98与与63的最大公约数的最大公约数解:由于两个数不都

11、是偶数,把解:由于两个数不都是偶数,把98和和63以大数减小数,并辗转相减以大数减小数,并辗转相减 1477所以,所以,98和和63的最大公约数等于的最大公约数等于7 练习:用更相减损术求两个正数练习:用更相减损术求两个正数84与与72的最大公约数。的最大公约数。(答案:(答案:12)986335633528352872872121714(1)都是求最大公约数的方法,计算上辗转相除法以除法)都是求最大公约数的方法,计算上辗转相除法以除法为主,更相减损术以减法为主,计算次数上辗转相除法计算为主,更相减损术以减法为主,计算次数上辗转相除法计算次数相对较少,特别当两个数比较大时更适合用辗转相除法。次

12、数相对较少,特别当两个数比较大时更适合用辗转相除法。(2)从结果体现形式来看,辗转相除法体现结果是以相除)从结果体现形式来看,辗转相除法体现结果是以相除余数为余数为0而得到,而更相减损术则以减数与差相等而得到的。而得到,而更相减损术则以减数与差相等而得到的。辗转相除法与更相减损术的区别辗转相除法与更相减损术的区别用更相减损术求两个正整用更相减损术求两个正整数数m,n的最大公约数的最大公约数算法步骤算法步骤(1)输入两个整数输入两个整数m,n(2)若若mn,转到转到(3),否则转到否则转到(4)(3)若若mn,则则m=m-n,否则否则n=n-m,转到转到(2)(4)输出最大公约数输出最大公约数n

13、用更相减损术求两个正整用更相减损术求两个正整数数m,n的最大公约数的最大公约数程序框图程序框图输入输入m,n开始开始mn?mn?m=m-nn=n-m输出输出n结束结束NYYN算法步骤算法步骤(1)输入两个整数输入两个整数m,n(2)若若mn,转到转到(3),否则转到否则转到(4)(3)若若mn,则则m=m-n,否则否则n=n-m,转到转到(2)(4)输出最大公约数输出最大公约数n更相减损术更相减损术的算法程序:的算法程序:INPUT “m,n=”;m,nWHILE mn IF mn THEN m=m-n ELSE n=n-m END IFWENDPRINT nEND程程 序序程序框图程序框图输入输入m,n开始开始mn?mn?m=m-nn=n-m输出输出n结束结束NYYN算法步骤算法步骤(1)输入两个整数输入两个整数m,n(2)若若mn,转到转到(3),否则转到否则转到(4)(3)若若mn,则则m=m-n,否则否则n=n-m,转到转到(2)(4)输出最大公约数输出最大公约数n(1)都是求最大公约数的方法,计算上辗转相除法以除法)都是求最大公约数的方法,计算上辗转相除法以除法为主,更相减损术以减法为主,计算次数上辗转相除法计算

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论