网站大量收购闲置独家精品文档,联系QQ:2885784924

[算法综合资料.doc

  1. 1、本文档共45页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[算法综合资料

程序设计的常用算法 目录 一、常用策略 1、枚举策略 2、归纳策略 3、分治策略 4、最优策略 二、递归算法 三、有哪些信誉好的足球投注网站算法 1、深度优先有哪些信誉好的足球投注网站 2、广度优先有哪些信誉好的足球投注网站 四、其它数学方法的应用 五、动态规划 六、综合训练题 = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = 第一部分 常用策略 (一)枚举策略 1、算法思想 枚举策略又叫列举法,算法思想是:根据问题中的条件(约束条件)将可能的解列举出来,然后一一验证是否符合题目要求,从而找到问题的解。应用枚举策略解题的关键是:根据问题的条件确定解的范围,和对可能的解进行验证。 2、应用举例 例1_1: 找水仙花数 一个三位数各位数字的立方和等于它本身,这样的三位数称为水仙花数。请编程找出所有的水仙花数。 分析:根据水仙花数的定义可知,水仙花数一定是三位数,因此,可能的范围是100至999的所有数,将这些数一一列举进行验证,从而找出所有的水仙花数。程序如下: program Liti1_1; var a,b,c,d: integer; begin for a:=100 to 999 do begin b:=a mod 10; c:=(a div 10) mod 10; d:=a div 100; if (a=b*b*b+c*c*c+d*d*d) then writeln(a); end; end. 其中a 是枚列变量,b、c、d分别表示个位、十位、百位上的数字。 例1_2: 百钱买百鸡问题 用100元钱到市上买鸡,已知大的公鸡每只5元,大的母鸡每只4元,小鸡每元3只,现在要用100元去买100只鸡,要求每种鸡至少买一只,问买公鸡、母鸡和小鸡各多少只?有多少种方案? 分析:设x、y、z分别表示买公鸡、母鸡、小鸡的只数,那么依题意可知它们的范围分别为:x: 1—100/5; y: 1—(100-x*5)/4; 根据条件小鸡的只数为100-x-y, 如果符合钱总额为100,鸡的总只数为100,则找到问题的一组解。故可编如下: program Liti1_2; var x, y, z: integer; a,b,c,total: integer; begin a:=trunc(100/5); total:=0; for x:=1 to a do begin b:=trunc((100-x*5)/4); for y:=1 to b do begin z:=100-x-y; c:=trunc(z/3); if x*5+y*4+c=100 then begin writeln(‘gong ji’,x, ‘ ’, ‘mu gi: ’,y, ‘ ’,’xiao ji:’,z); total:=total+1; end; end; end; writeln(‘total=’,total); end. 例1_3: 有四种重量不同的砝码(重量分别为A,B,C,D,且ABCD),每种砝码有三个,要求称出重量为A~M的重量为连续的X种货物,每次最多只能用三个砝码,问:M是几? 例如: 输入砝码重量为1,4,5,9 输出为: 15 program lx; …… for I:=0 to 3 do for j:=0 to 3 do for k:=0 to 3 do if I+j+k+l =3 then begin x=A*I+B*J+C*K+D*L; p(x)=1 end; for I :=A to 3 *D+1 if p(i)=0 then begin max:=I-1 ; halt end; 3、小结:枚举法的思想应用很广,由于枚举法要将所有可能的解一一列举出来验证,因此,运算量很大,编程时应尽量缩小范围,充分利用题目给定的条件,减少程序的运算量。 4、练习: 练习1—1:一个四位数是一个完全平方数,它减去一个每位数字都相同的四位数(如1111)后,仍是一个四位的完全平方数。请编程打印出所有这样的四位数。 练习1-2:编程求具有下现两个性质的最小自然n; (1) n的个位数是6; (2) 若将n的个

文档评论(0)

1789811832 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档