时辗转相除法与更相减损术秦九韶算法.pptx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《时辗转相除法与更相减损术秦九韶算法.pptx》由会员分享,可在线阅读,更多相关《时辗转相除法与更相减损术秦九韶算法.pptx(33页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1.回顾算法的三种表述:自然语言程序框图(三种逻辑结构)程序语言(五种基本语句)第1页/共33页2.思考:小学学过的求两个数最大公约数的方法?先用两个公有的质因数连续去除,一直除到所得的商是互质数为止,然后把先用两个公有的质因数连续去除,一直除到所得的商是互质数为止,然后把所有的除数连乘起来所有的除数连乘起来.第2页/共33页辗转相除法(欧几里得算法)思考1:求两个正整数的最大公约数(1)求25和35的最大公约数(2)求49和63的最大公约数25(1)5535749(2)77639所以,所以,2525和和3535的最大公约数为的最大公约数为5.5.所以,所以,4949和和6363的最大公约数为
2、的最大公约数为7.7.除了用这种方法外还有没有其他方法?第3页/共33页思考2:算出8251和6105的最大公约数.第一步:第一步:用两数中较大的数除以较小的数,求得商和余数用两数中较大的数除以较小的数,求得商和余数8251=61051+21468251=61051+2146结论:结论:82518251和和61056105的公约数就是的公约数就是61056105和和21462146的公约数,求的公约数,求82518251和和61056105的最的最大公约数,只要求出大公约数,只要求出61056105和和21462146的公约数就可以了的公约数就可以了.第二步:第二步:对对61056105和和2
3、1462146重复第一步的做法重复第一步的做法6105=21462+18136105=21462+1813同理同理61056105和和21462146的最大公约数也是的最大公约数也是21462146和和18131813的最大公约数的最大公约数.为什么?为什么?第4页/共33页完整的过程:8251=61051+2146 6105=21462+1813 2146=18131+3331813=3335+148333=1482+37148=374+0 显然37是148和37的最大公约数,也就是8251和6105的最大公约数.第5页/共33页例1 用辗转相除法求225和135的最大公约数.显然45是90
4、和45的最大公约数,也就是225和135的最大公约数.225=1351+90135=901+4590=452第6页/共33页思考3:从上面的两个例子可以看出计算的规律是什么?S1S1:用大数除以小数:用大数除以小数S2S2:除数变成被除数,余数变成除数:除数变成被除数,余数变成除数S3S3:重复:重复S1S1,直到余数为,直到余数为0 0思考4:辗转相除法中的关键步骤是哪种逻辑结构?辗转相除法是一个反复执行直到余数等于辗转相除法是一个反复执行直到余数等于0 0停止的步骤,这实际上是一个循停止的步骤,这实际上是一个循环结构环结构.第7页/共33页8251=61051+2146 6105=2146
5、2+1813 2146=18131+3331813=3335+148333=1482+37148=374+0m=nqm=nqr r用程序框图表示出右边的过程r=m MOD nm=nn=rr=0?是否第8页/共33页辗转相除法(欧几里得算法)(1 1)算理:算理:所谓辗转相除法,就是对于给定的两个数,用较大的数除以较所谓辗转相除法,就是对于给定的两个数,用较大的数除以较小的数小的数.若余数不为零,则将余数和较小的数构成新的一对数,继续上面的若余数不为零,则将余数和较小的数构成新的一对数,继续上面的除法,直到大数被小数除尽,则这时较小的数就是原来两个数的最大公约数除法,直到大数被小数除尽,则这时较
6、小的数就是原来两个数的最大公约数.第9页/共33页(2 2)算法步骤)算法步骤第一步:第一步:输入两个正整数输入两个正整数m,n(mn).m,n(mn).第二步:第二步:计算计算m m除以除以n n所得的余数所得的余数r.r.第三步:第三步:m=n,n=r.m=n,n=r.第四步:第四步:若若r r0,0,则则m,nm,n的最大公约数等于的最大公约数等于m m;否则转到第二步否则转到第二步.第五步:第五步:输出最大公约数输出最大公约数m.m.第10页/共33页(3 3)程序框图)程序框图(4 4)程序)程序INPUT “m,n=”;m,nDO r=m MOD n m=n n=rLOOP UNT
7、IL r=0PRINT mEND开始输入m,n求m除以n的余数rm=nn=rr=0?是输出m结束否第11页/共33页更相减损术 算理:可半者半之,不可半者,副置分母、子之数,以少减多,更相减损,求其等也,以等数约之.第一步:第一步:任意给定两个正整数,判断他们是否都是偶数任意给定两个正整数,判断他们是否都是偶数.若是,则用若是,则用2 2约简;约简;若不是则执行第二步若不是则执行第二步.第二步:第二步:以较大的数减较小的数,接着把所得的差与较小的数比较,并以大以较大的数减较小的数,接着把所得的差与较小的数比较,并以大数减小数数减小数.继续这个操作,直到所得的减数和差相等为止,则这个等数或其与继
8、续这个操作,直到所得的减数和差相等为止,则这个等数或其与约简的数的乘积就是所求的最大公约数约简的数的乘积就是所求的最大公约数.第12页/共33页更相减损术(1 1)算理:)算理:所谓更相减损术,就是对于给定的两个数,用较大的数减去较所谓更相减损术,就是对于给定的两个数,用较大的数减去较小的数,然后将差和较小的数构成新的一对数,再用较大的数减去较小的数,小的数,然后将差和较小的数构成新的一对数,再用较大的数减去较小的数,反复执行此步骤直到差数和较小的数相等,此时相等的两数便为原来两个数反复执行此步骤直到差数和较小的数相等,此时相等的两数便为原来两个数的最大公约数的最大公约数.第13页/共33页(
9、2 2)算法步骤)算法步骤第一步:第一步:输入两个正整数输入两个正整数a,b(ab);a,b(ab);第二步:第二步:若若a a不等于不等于b,b,则执行第三步;否则转到第五步;则执行第三步;否则转到第五步;第三步:第三步:把把a-ba-b的差赋予的差赋予r;r;第四步:第四步:如果如果br,br,那么把那么把b b赋给赋给a,a,把把r r赋给赋给b;b;否则把否则把r r赋给赋给a a,执行第二步;,执行第二步;第五步:第五步:输出最大公约数输出最大公约数b.b.第14页/共33页(3 3)程序框图)程序框图开始输入m,nnk?m=n是输出m结束mn?k=m-n是否n=km=k否第15页/
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 辗转 除法 减损 术秦九韶 算法
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内