高中数学新课标人教A版必修三 算法案例课件.pptVIP

高中数学新课标人教A版必修三 算法案例课件.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
汉诺(Hanoi)塔问题是一个著名的应用递归算法解决的问题。 问题4-17: 传说在古代印度的贝拿勒斯神庙里安放了一块黄铜板,板上插了三根宝石柱,在其中一根宝石柱自上而下由小到大地叠放着64个大小不等的金盘。一名僧人把这些金盘从一根宝石柱移到另外一根上。僧人在移动金盘时遵守下面3条规则: ⒈一次只能移动一个金盘。 ⒉每个金盘只能由一根宝石柱移到另外一根宝石柱。 ⒊任何时候都不能把大的金盘放在小的金盘上。 神化说,如果僧人把64个金盘完全地从一根宝石柱移到了另外一根上,世界的末日就要到了。当然,神化只能当故事听,世界不可以因为个别人的活动而导致末日。不过,如果能够计算出僧人按规则搬完64个金盘,地球能否继续存在也的确是个问题!因为即使僧人的动作十分敏捷,每秒都能移动一个金盘,那也得要几亿年! 分析问题 要模拟金盘的移动过程是比较困难的,但如果用递归的思想来进行(压缩规模,把问题解决在最简单的情况),则问题可以解决。 我们把3根宝石柱分别命名为A、B、C。最初有N个金盘放在A,需要把它们全部按规则移动到B。 当N=1时,直接把金盘从A搬到B就可以了,1次成功。 当N≥2,那么需要利用C柱来过渡。按照递归的思想,我们假设已经找到一种把N-1个金盘从一根柱搬到另外一根柱的方法,然后看看如何通过它来实现搬动N个金盘。我们只要把N-1个金盘从A搬到C,然后把最大的金盘从A搬到B,最后把C上的N-1个金盘搬到B就可以了。靠递归的思想,我们轻而易举地完成了整个搬动。 设计算法 我们定义一个过程Hanoi(N,A,B,C),表示有N个金盘需要从A柱搬到B柱(以C柱为过渡)。那么完成它只需3步: Hanoi(N-1,A,C,B)它的意思是把A柱上的N-1个金盘搬到C柱, A→B它的意思是把一个(最大的)金盘从A柱搬到B柱, Hanoi(N,C,B,A)它的意思是把C柱上的N-1个金盘搬到B柱。 四.算法案例 1.多项式求值的秦九韶方法 如果给定一个多项式, (3. 4.1) 其中 现在的问题是,给定一个x的值,要求多项式函数 的值。对于这个问题,一种看起来很“自然”的方法是直接逐项求和。如果用 表示x的k次幂, 表示式(3. 4.1)右端前k +l项的部分和,即 由于x的k次幂实际上等于其次幂再乘上x,而前k+1项的部分和等于前k项的部分和再加上第k +l项,因此,逐项求和的方法可以归结为如下的递推关系: (3.4.2) 作为递推公式(3.4.2)的初值为: (3.4.3) 这样,就可以利用初值(3.4.3),对于k=1,2,…直到n,反复利用公式(3.4.2)进行计算,最后就可以得到。其算法描述如下: (1)逐项法多项式求值。 输入:存放 的系数数组A(0:n); 自变量x值。其中 输出: 值P PROCEDURE CPOLY(A,n,x,P) FOR i=2 TO n DO OUTPUT P RETURN 在这个算法中,为了计算一个x点处的函数,共需要作2n-1次乘法和n次加法。还能不能减少乘法的次数呢?我们可以将式(3. 4. 1)的右端按降幂次序重新排列,并将它表述成如下嵌套形式 这样,就可以利用式(3.4.4)的特殊结构,从里往外一层一层地进行计算,即按如下递推关系进行计算: 最后可得结果 (3.4.4) (3.4.5) 这种多项式求值的方法是由我国宋代的一位数学家秦九韶最先提出的,我们称之为秦九韶方法,在有的书上也叫霍纳(Horner)方法。其算法描述如下: 算法3.2多项式求值的秦九韶方法. 输入:存放 的系数数组A(0:n); 自变量x值。其中 。 输出: 值P。 PROCEDURE CHORNER(A,n,x,P) FOR i=n-1 TO 0 BY -1 DO OUTPUT P RETURN 由秦九韶算法可以看出,多项式函数的求值只要用一个很简单的循环就能完成,并且在这个循环中只需要作n次乘法和n次加法就够了。它在实际使用中是一个很有效的方法。 例. 中国剩余定理(孙子定理)若k2,且m1,m2,…mk是两两互素的k个正整数,令M= m1m2…mk=m1M1=m2M2=…=mkMk。 则同余式组:x1=b1(modm1),x2=b2(modm2),…xk=bk(modmk)

文档评论(0)

huak + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档