算法案例复习课.pptVIP

  1. 1、本文档共51页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
例3、用更相减损术求98与63的最大公约数. 98-63=35, 14-7=7. 21-7=14, 28-7=21, 35-28=7, 63-35=28, 因为63不是偶数,所以 所以最大公约数是7. 例4、分别用辗转相除法和更相减损术求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. 例5、求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. 用更相减损术求两个正整数m,n的最大公约数, 其算法步骤为: 第一步,给定两个正整数m,n(mn). 第二步,计算m-n所得的差k. 第三步,比较n与k的大小,其中大者用m表示,小者用n表示. 第四步,若m=n,则m,n的最大公约数等于m;否则,返回第二步. 讨论:该算法的程序框图如何表示? 开始 输入m,n nk? m=n 是 输出m 结束 m≠n? k=m-n 是 否 n=k m=k 否 讨论:该程序框图对应的程序如何表述? INPUT m,n WHILE m≠n k=m-n IF nk THEN m=n n=k ELSE m=k END IF WEND PRINT m END 开始 输入m,n nk? m=n 是 输出m 结束 m≠n? k=m-n 是 否 n=k m=k 否 二、 秦九韶算法 例1、设计求多项式f(x)=2x5-5x4-4x3+3x2-6x+7当x=5时的值的算法,并写出程序. x=5 f=2*x^5-5*x^4-4*x^3+3*x^2-6*x+7 PRINT f END 程序 点评:上述算法一共做了15次乘法运算,5次加法运算.优点是简单,易懂;缺点是不通用,不能解决任意多项式求值问题,而且计算效率不高. 这析计算上述多项式的值,一共需要9次乘法运算,5次加法运算. 点评:有没有更高效的算法? 分析:计算x的幂时,可以利用前面的计算结果,以减少计算量, 即先计算x2,然后依次计算 的值. 第二种做法与第一种做法相比,乘法的运算次数减少了,因而能提高运算效率.而且对于计算机来说,做一次乘法所需的运算时间比做一次加法要长得多,因此第二种做法能更快地得到结果. 能否探索更好的算法,来解决任意多项式的求值问题? f(x)=2x5-5x4-4x3+3x2-6x+7 =(2x4-5x3-4x2+3x-6)x+7 =((2x3-5x2-4x+3)x-6)x+7 =(((2x2-5x-4)x+3)x-6)x+7 =((((2x-5)x-4)x+3)x-6)x+7 v0=2 v1=v0x-5=2×5-5=5 v2=v1x-4=5×5-4=21 v3=v2x+3=21×5+3=108 v4=v3x-6=108×5-6=534 v5=v4x+7=534×5+7=2677 所以,当x=5时,多项式的值是2677. 这种求多项式值的方法就叫秦九韶算法. 例1、用秦九韶算法求多项式 f(x)=2x5-5x4-4x3+3x2-6x+7当x=5时的值. 解法一:首先将原多项式改写成如下形式 : f(x)=((((2x-5)x-4)x+3)x-6)x+7 v0=2 v1=v0x-5=2×5-5=5 v2=v1x-4=5×5-4=21 v3=v2x+3=21×5+3=108 v4=v3x-6=108×5-6=534 v5=v4x+7=534×5+7=2677 所以,当x=5时,多项式的值是2677. 然后由内向外逐层计算一次多项式的值,即 2 -5 -4 3 -6 7

文档评论(0)

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

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

1亿VIP精品文档

相关文档