当前位置:文档之家› 1.3算法案例(适用)ppt

1.3算法案例(适用)ppt


思考4:辗转相除直到何时结束? 主要运用的是哪种算法结构?
辗转相除法是一个反复执行直到余数等于0停止的步骤, 这实际上是一个循环结构 辗转相除法求两个数的最大公约数,其算法可以描述如下: ① 输入两个正整数m和n; ② 求余数r:计算m除以n,将所得余数存放到变量r中; ③更新被除数和余数:m=n,n=r。 ④判断余数r是否为0:若余数为0则输出结果,否则转 向第②步继续循环执行。 如此循环,直到得到结果。
1.3.2
秦九韶算法
探究三、秦九韶算法
• 思考1,在初中,我们是如何求一个多项式的 值的?
• 思考2,已知一个n 次多项式 f(x)=anxn+an-1xn-1+…+a1x+a0当x=x0时,除 了用代入法求解外是否还有更好的方法呢?
秦九韶算法的基本思想
思考1:对于多项式f(x)=x5+x4+x3+x2+x+1,求 f(5)的值. 分析:把5代入多项式,若先计算各项的值, 然后再相加,那么一共要做: 4+3+2+1=10次乘法运算,5次加法运算.
思考2:对于8251与6105这两个数,它们的最大 公约数是多少?你是怎样得到的?
由于它们公有的质因数较大,利用上述方法求 最大公约数就比较困难.有没有其它的方法可以较简 单的找出它们的最大公约数呢?
思考3:注意到8251=6105×1+2146,那么8251 与6105这两个数的公约数和6105与2146的公约数有 什么关系? 我们发现6105=2146×2+1813,同理,6105与 2146的公约数和2146与1813的公约数相等. 思考4:重复上述操作,你能得到8251与6105这 两个数的最大公约数吗? 8251=6105×1+2146, 1813=333×5+148, 6105=2146×2+1813, 333=148×2+37, 2146=1813×1+333, 148=37×4+0. 定义:所谓的辗转相除法,就是对于给定的两个数,用较大的 数除以较小的数,若余数不为零,则将余数和较小的数构成 新的数对,继续上面的除法, 直到大数被小数除尽,则这时 较小的数就是原来两个数的最大公约数
思考5:你能把辗转相除法编成一个计算机程序吗? 第一步,给定两个正整数m,n(m>n). 第二步,计算m除以n所得的余数r. 第三步,m=n,n=r. 第四步,若r=0,则m,n的最大公约数等于m; 否则,返回第二步.
开始
程序框图 INPUT m,n DO r=m MOD n m=n n=r LOOP UNTIL PRINT m END 输入m,n 求m除以n的余数r m=n
练习:用辗转相除法求下列两数的最大公约数: (1)(225,135) 45 (2)(98,196) 98 24 (3)(72,168) (4)(153,119) 17
二、更相减损术 《九章算术》是中国古代的数学专著,其中的 “更相减损术”也可以用来求两个数的最大公约数, 即“可半者半之,不可半者,副置分母、子之数, 以少减多,更相减损,求其等也.以等数约之.” 意思是: 第一步:任意给定两个正整数,判断它们是否 都是偶数. 若是,用2约简;若不是,执行第二步. 第二步:以较大的数减去较小的数,接着把差 与较小的数比较,并以大数减小数.继续这个操作, 直到所得的数相等为止,则这个等数或这个数与约 简的数的乘积就是所求的最大公约数.
例1:用更相减损术求98与63的最大公约数. 因为63不是偶数,所以
98-63=35, 63-35=28, 35-28=7,
28-7=21,
21-7=14, 14-7=7.
所以最大公约数是7.
例2 分别用辗转相除法和更相减损术求168与93 的最大公约数. 辗转相除法:
168=93×1+75, 93=75×1+18, 75=18×4+3, 18=3×6. 更相减损术: 168-93=75, 93-75=18, 75-18=57, 57-18=39, 39-18=21, 21-18=3, 18-3=15, 15-3=12, 12-3=9, 9-3=6, 6-3=3.
探究一,辗转相除法
思考1:在小学中我们是如何求出两个正整数 的最大公约数的呢?
例、求18与24的最大公有质因数2除, 9 12 用公有质因数3除, 3 4 3和4互质不除了。 短除法 得:18和24最大公约数是:2×3=6
想一想,如何求8251与6105的最大公约数?
n=r r=0
r=0? 否 是 输出m
结束
思考6:如果用当型循环结构构造算法,则用辗 转相除法求两个正整数m、n的最大公约数的程序框 图和程序分别如何表示?
开始 输入m,n n=r m=n 求m除以n的余数r 是 r≠0 ? 否 输出m 结束
INPUT WHILE
m ,n r<>0
r=m MOD n m=n n=r WEND PRINT END m
例3 用更相减损术求80与36的最大公 约数.
例4 求325,130,270三个数的最大公约数.
因为325=130×2+65,130=65×2,所以325与130 的最大公约数是65.
因为270=65×4+10,65=10×6+5,10=5×2,所 以65与270最大公约数是5. 故325,130,270三个数的最大公约数是5.
思考2:另一种做法是先计算x2的值,然后依 次计算x2·x,(x2·x)·x,((x2·x)·x)·x的 值,这样每次都可以利用上一次计算的结果,这 时一共做了:
4次乘法运算,5次加法运算.
1.3
算法案例
1.3
算法案例
1.3.1 辗转相除法和更相减损术 1.3.2 秦九韶算法 1.3.3 K进制化十进制
1.3.4 十进制化K进制
1.3.1 辗转相除法 和更相减损术
复习 1.研究一个实际问题的算法,主要从哪几方面展开?
算法步骤、程序框图和编写程序三方面展开.
2.在程序框图中算法的基本逻辑结构有哪几种? 顺序结构、条件结构、循环结构 3.在程序设计中基本的算法语句有哪几种? 输入语句、输出语句、赋值语句、条件语句、循环语句
相关主题