算法的设计第九讲.pptVIP

  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文档。上传文档
查看更多
3.3 优化算法的基本技巧;3.3 优化算法的基本技巧;3.3 优化算法的基本技巧;3.3 优化算法的基本技巧;3.3 优化算法的基本技巧;3.4 优化算法的数学模型;3.4 优化算法的数学模型;3.4 优化算法的数学模型;3.4 优化算法的数学模型;3.4.1 杨辉三角形的应用;3.4.1 杨辉三角形的应用;3.4.1 杨辉三角形的应用;3.4.2 最大公约数的应用;3.4.2 最大公约数的应用;3.4.2 最大公约数的应用;3.4.2 最大公约数的应用;3.4.2 最大公约数的应用;3.4.2 最大公约数的应用;3.4.2 最大公约数的应用;main( ) {int a[100],b0,b1,i,j,n,k,m,tt; input(n,k); for(i=0;in;i=i+1) input(a[i]); m=ff(n,k); for(j=0;jm;j=j+1) /*共移动m组*/ { b0= a[j]; /*将每组的第一个数保存到b0中*/ tt=j; ;for(i=0;in/m;i=i+1) /*每组中共有n/m个数据*/ {tt=(tt+k)%n; /*计算移动的目标位置*/ b1=a[tt]; /*先保存目标位置中的数据*/ a[tt]=b0; /*将前面的数据b0移入目标位置*/ b0=b1; /*将b1作为新的b0*/ } } for(i=0;in;i=i+1) print(a[i]); };f=n/m; for(j=0;jm;j=j+1) /*共移动m组*/ { b=a[(j+(f-1)*k)%n]; /*将每组的最后一个数保存到b中*/ for(i=f-1;i0;i--) a[(j+i*k)%n]=a[(j+(i-1)*k)%n];/*从后向前移动*/ a[j]=b; /*把该组的最后一个数送到a[j]处*/ } } ;【例】编程完成下面给“余”猜数的游戏: 你心里先想好一个1~100之间的整数x,将它分别除以3、5 和7并得到三个余数。你把这三个余数告诉计算机,计算机 能马上猜出你心中的这个数。游戏过程如下: Please think of a number between 1 and 100 Your number divided by 3 has a remainder of? 1 your number divided by 5 has a remainder of? 0 your number divided by 7 has a remainder of? 5 your number is 40 ;【问题分析】算法设计的关键:找出余数与求解数之间的关系,建立问题的数学模型。 【数学模型】 1)不难理解当s=u+3*v+3*w时,s除以3的余数与u除以3的 余数是一样的。 2)对s=cu+3*v+3*w,当c是除以3余1的数时, s除以3的 余数与u除以3的余数也是一样的。;【模型建立】设a,b,c分别是该数除以3,5,7后的余数,则该数为: x=c1*a+c2*b+c3*c;main( ) { int a,b,c,d; input(a);/*除3后的余数*/ input(b);/*除5后??余数*/ input(c);/*除7后的余数*/ d=70*a+21*b+15*c; while (d100) d=d-105;/*105为3,5,7的最小公倍数*/ print( “your number is ”, d); };【例】楼梯上有n阶台阶,上楼可以一步上1阶,也可以一步上2阶,编写算法计算共有多少种不同的上楼梯方法。 【数学模型】此问题如果按照习惯,从前向后思考,也就是从第一阶开始,考虑怎么样走到第二阶、第三阶、第四阶……,则很难找出问题的规律;而反过来先思考“到第n阶有哪几种情况?”,答案就简单了,只有两种情况: 1)? 从第n-1阶到第n阶; 2)? 从第n-2阶到第n阶。;记n阶台阶的走法数为f(n),则 ?? f(n)= 1 n=1 f(n)= 2? n=2 f(n)=f(n-1)+f(n-2) n2;(2)倒推法:是对某些特殊问题所采用的从后向前推解问题的方法。 【例3】猴子吃桃问题:一只小猴子摘了若干

文档评论(0)

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

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

1亿VIP精品文档

相关文档