算法案例1-辗转相除法

上传人:ldj****22 文档编号:53962792 上传时间:2018-09-06 格式:PPT 页数:17 大小:149KB
返回 下载 相关 举报
算法案例1-辗转相除法_第1页
第1页 / 共17页
算法案例1-辗转相除法_第2页
第2页 / 共17页
算法案例1-辗转相除法_第3页
第3页 / 共17页
算法案例1-辗转相除法_第4页
第4页 / 共17页
算法案例1-辗转相除法_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《算法案例1-辗转相除法》由会员分享,可在线阅读,更多相关《算法案例1-辗转相除法(17页珍藏版)》请在金锄头文库上搜索。

1、1.3 算法案例,第一课时,问题提出,1.研究一个实际问题的算法,主要从算法步骤、程序框图和编写程序三方面展开.在程序框图中算法的基本逻辑结构有哪几种?在程序设计中基本的算法语句有哪几种?,2.“求两个正整数的最大公约数”是数学中的一个基础性问题,它有各种解决办法,我们以此为案例,对该问题的算法作一些探究.,辗转相除法与 更相减损术,复习引入,1、MOD 表示什么意思? a MOD b ab (a b 是正整数),a=b*q+r,(0=rb),2、求 18与30的最大公约数。,先用两个数公有的质因数连续去除,一直除到所得的商是互质数为止,然后把所有的除数连乘起来即为最大公约数.,思考: 若求8

2、251和6105的最大公约数呢?,注意到 8251=61051+2146 那么8251和6105这两个数的公约数和 6105与2146的公约数有什么关系?,思考:又6105=21462+1813,同理,6105与2146的公约数和2146与1813的公约数相等.重复上述操作,你能得到8251与6105这两个数的最大公约数吗?,2146=18131+333,,148=374+0.,333=1482+37,,1813=3335+148,,8251=61051+2146,,6105=21462+1813,,完整的过程,8251=61051+2146,6105=21462+1813,2146=1813

3、1+333,1813=3335+148,333=1482+37,148=374+0,显然37是148和37的最大公约数,也就是8251和6105的最大公约数,辗转相除法 (欧几里得算法),例:用辗转相除法求225和135的最大公约数,思考:能不能把辗转相除法设计成算法呢? 关键步骤是什么逻辑结构?,用程序框图表示出右边的过程,思考 其算法步骤如何设计?,第一步,给定两个正整数m,n(mn).,第二步,计算m除以n所得的余数r.,第三步,m=n,n=r.,第四步,若r=0,则m,n的最大公约数等 于m;否则,返回第二步.,思考:该程序框图和的程序如何表述?,INPUT m,n,DO,r=m MO

4、D n,m=n,n=r,LOOP UNTIL r=0,PRINT m,END,知识探究(二):更相减损术,思考1:设两个正整数mn,若m-n=k,则m与n的最大公约数和n与k的最大公约数相等.反复利用这个原理,可求得98与63的最大公约数为多少?,98-63=35,,14-7=7.,21-7=14,,28-7=21,,35-28=7,,63-35=28,,二、更相减损术,可半者半之,不可半者,副置分母、子之数,以少减多,更相减损,求其等也,以等数约之。,第一步:任意给定两个正整数;判断他们是否都是偶数。若是,则用2约简;若不是则执行第二步。,第二步:以较大的数减较小的数,接着把所得的差与较小的

5、数比较,并以大数减小数。继续这个操作,直到所得的减数和差相等为止,则这个等数就是所求的最大公约数。,(1)、九章算术中的更相减损术:,(2)、现代数学中的更相减损术:,1、用更相减损术求两个正数84与72的最大公约数,练习:,思路分析:先约简,再求21与18的最大公约数,然后乘以两次约简的质因数4。,2、求324、243、135这三个数的最大公约数。,思路分析:求三个数的最大公约数可以先求出两个数的最大公约数,第三个数与前两个数的最大公约数的最大公约数即为所求。,比较辗转相除法与更相减损术的区别 (1)都是求最大公约数的方法,计算上辗转相除法以除法为主,更相减损术以减法为主,计算次数上辗转相除法计算次数相对较少,特别当两个数字大小区别较大时计算次数的区别较明显。 (2)从结果体现形式来看,辗转相除法体现结果是以相除余数为0则得到,而更相减损术则以减数与差相等而得到。,小结,思考题,1、用当型循环结构写出算法; 2、试写出更相减损术的算法程序; 3、试写出求两个正整数m、n的最小公倍数的程序。,评价一个算法好坏的一个重要标志是运算的次数,如果一个算法从理论上需要超出计算机允许范围内的运算次数,那么这样的算法就只能是一个理论算法.在多项式求值的各种算法中,秦九韶算法是一个优秀算法.,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号