1.3《算法案例》 【学习目标】1.理解辗转相除法与更相减损术中蕴含的数学原理,并能根据这些原理进行算法分析。2.基本能根据算法语句与程序框图的知识设计完整的程序框图并写出算法程序。【重点难点】重点:理解辗转相除法与更相减损术求最大公约数的方法。难点:把辗转相除法与更相减损术的方法转换成程序框图与程序语言。 【学习过程】情境导入:1.教师首先提出问题:在初中,我们已经学过求最大公约数的知识,你能求出 18 与 30 的公约数吗?2.接着教师进一步提出问题,我们都是利用找公约数的方法来求最大公约数,如果公约数比较大而且根据我们的观察又不能得到一些公约数,我们又应该怎样求它们的最大公约数?比如求 8251 与 6105的最大公约数?这就是我们这一堂课所要探讨的内容。新知探究:1.辗转相除法例 1 求两个正数 8251 和 6105 的最大公约数。(分析:8251 与 6105 两数都比较大,而且没有明显的公约数,如能把它们都变小一点,根据已有的知识即可求出最大公约数)解:8251=6105×1+2146显然 8251 的最大公约数也必是 2146 的约数,同样 6105 与 2146 的公约数也必是 8251 的约数,所以8251 与 6105 的最大公约数也是 6105 与 2146 的最大公约数。6105=2146×2+18132146=1813×1+3331813=333×5+148333=148×2+37148=37×4+0则 37 为 8251 与 6105 的最大公约数。以上我们求最大公约数的方法就是辗转相除法。也叫欧几里德算法,它是由欧几里德在公元前 300 年左右首先提出的。利用辗转相除法求最大公约数的步骤如下:第一步:用较大的数 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即为所求的最大公约数。练习:利用辗转相除法求两数 4081 与 20723 的最大公约数(答案:53)2.更相减损术我国早期也有解决求最大公约数问题的算法,就是更相减损术。更相减损术求最大公约数的步骤如下:可半者半之,不可半者,副置分母·子之数,以少减多,更相减损,求其等也,以等数约之。翻译出来为:第一步:任意给出两个正数;判断它们是否都是偶数。若是,用 2 约简;若不是,...