课件编号6771939

1.3算法案例(共50张PPT)

日期:2024-04-30 科目:数学 类型:高中课件 查看:67次 大小:953612Byte 来源:二一课件通
预览图 1/5
算法,案例,50张,PPT
  • cover
(课件网) 1.3 算法案例 方法: 新课导入 先用两个公有的质因数连续去除,一直除到所得的商是互质数为止,然后把所有的除数连乘起来。 求两个数最大公约数的方法? 除了用这种方法外还有没有其它方法? 求算出8256和6105的最大公约数 解析: 如果按照以上的方法求最大公约数,会很麻烦,而其工作量也很多。 想一想 观察用辗转相除法求8251和6105的最大公约数的过程: 第一步 用两数中较大的数除以较小的数,求得商和余数:8251=6105×1+2146 第二步 对6105和2146重复第一步是6105=2146×2+1813同理6105和2146的最大公约数也是2146和1813的最大公约数。 观察 结论: 8251和6105的公约数就是6105和2146的公约数,求8251和6105的最大公约数,只要求出6105和2146的公约数就可以了。 思考:从上述的过程你体会到了什么? 完整的过程 8251=6105×1+2146 6105=2146×2+1813 2146=1813×1+333 1813=333×5+148 333=148×2+37 148=37×4+0 显然37是148和37的最大公约数,也就是8251和6105的最大公约数 从上面的例子可以看出计算的规律是什么? S1:用大数除以小数 S2:除数变成被除数,余数变成除数 S3:重复S1,直到余数为0 归纳 算法表示: 算法步骤! 辗转相除法是一个反复执行直到余数等于0停止的步骤,这实际上是一个循环结构。 用程序框图表示出过程 r=m MOD n m = n n = r r=0? 是 否 知识要点 辗转相除法(欧几里得算法) : 所谓辗转相除法,就是对于给定的两个数,用较大的数除以较小的数。若余数不为零,则将余数和较小的数构成新的一对数,继续上面的除法,直到大数被小数除尽,则这时较小的数就是原来两个数的最大公约数。 辗转相除法算法步骤: 第一步:输入两个正整数m,n(m>n); 第二步:计算m除以n所得的余数r; 第三步:m=n,n=r; 第四步:若r=0,则m,n的最大公约数等于m; 否则转到第二步; 第五步:输出最大公约数m。 程序框图 开始 输入m,n r=m MOD n m=n r=0? 是 否 n=r 输出m 结束 程序 INPUT “m,n=“;m,n DO r=m MOD n m=n n=r LOOP UNTIL r=0 PRINT m END 求8251和6105的最大公约数。 148=37 ×4 =37 8251=6105×1+2146 (8251,6105) =(6105,2146) 6105=2146 ×2+1813 =(2146,1813) 2146=1813 ×1+333 =(1813,333) 1813=333 ×5+148 =(333,148) 333=148 ×2+37 =(148,37) 解: 《九章算术》———更相减损术 算理:可半者半之,不可半者,副置分母、子之数,以少减多,更相减损,求其等也,以等数约之。 第一步:任意给定两个正整数;判断他们是否都是偶数。若是,则用2约简;若不是则执行第二步。 第二步:以较大的数减较小的数,接着把所得的差与较小的数比较,并以大数减小数。继续这个操作,直到所得的减数和差相等为止,则这个等数就是所求的最大公约数。 知识要点 更相减损术 所谓更相减损术,就是对于给定的两个数,用较大的数减去较小的数,然后将差和较小的数构成新的一对数,再用较大的数减去较小的数,反复执行此步骤直到差数和较小的数相等,此时相等的两数便为原来两个数的最大公约数。 更相减损术算法描述: 第一步:输入两个正整数a,b(a>b); 第二步:若a不等于b ,则执行第三步;否则转 到第五步; 第三步:把a-b的差赋予r; 第四步:如果b>r, 那么把b赋给a,把r赋给b;否 则把r赋给a,执行第二步; 第五步:输出最大公约数b。 算法步骤! a=r 开始 输入a,b a≠b? 是 否 输出b 结束 b=r a=b r=a-b rb r=a-b IF b>r THEN a=b b=r ELSE a=r END IF WEND PRINT b END 用更相减损术求98与63的最大公约数。 解析:由于63不是偶数,把98和63以大数减小数,并辗转相减。 按 ... ...

~~ 您好,已阅读到文档的结尾了 ~~