用穷举法解决问题.ppt_第1页
用穷举法解决问题.ppt_第2页
用穷举法解决问题.ppt_第3页
用穷举法解决问题.ppt_第4页
用穷举法解决问题.ppt_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、用穷举法解决问题,计算机的特点之一就是运算速度快、善于重复做一件事情,“穷举法”正是基于这一特点的最古老的算法。它一般是一时找不到解决问题的更好的途径,即从数学上找不到求解的公式或者规则时,根据问题中的“约束条件”,将解的所有可能情况一一列举出来,然后再逐一验证是否符合整个问题的求解要求,从而得到问题的所有解。,穷举法的一般模式,列出问题的可能范围,一般用循环或者循环嵌套结构来实现 探究、挖掘出问题解的约束条件 根据约束条件优化算法,尽可能地缩小穷举范围,减少穷举次数,降低算法的时间和空间复杂度。,穷举法的应用举例,1、“水仙花数问题” 课本P6 。 水仙花数是指一个三位数,它的各位数的立方和

2、正好是等于该数本身。153=13+53+33。请设计算法求解该问题。,思路1:三位数范围100-999 约束条件:该三位数的各位数的立方和正好是等于该数本身 程序结构选择:一重循环,For i=100 to 999 a=I 100 b=(I mod 100) 10 c=I a*100-b*10 if I =a3+b3+c3 then print I end if Next i,思路2:该数的百位范围1-9,十位范围0-9,个位范围0-9 约束条件:该数的个、十、百位数的立方和正好是等于该数本身 程序结构选择:三重循环,1、“水仙花数问题” 课本P6 。,For I =1 to 9 For j=

3、0 to 9 For k=0 to 9 If 100*i+10*j+k=i3+j3+k3 then print 100*i+10*j+k End if Next k Next j Next I,穷举法的应用举例,2、公鸡一只值5元,鸡母一只值3元,小鸡三只值1元。现在有100只鸡,正好值100元钱,问公鸡、母鸡和小鸡各有几只?,设 变量设置为:X表示公鸡只数,Y表示母鸡只数,Z表示小鸡只数。,穷举时如何利用好百鸡和百钱两个已知条件,选择合适的穷举方法,使程序最优化? 变量设置:试找出下列变量的最小穷举范围 X穷举范围: _0-20_ Y穷举范围: _0-33_ Z穷举范围: _0-100_ 优化一下可以考虑 Z的设置方式: _z=100-x-y_,减少穷举的范围和不必要的穷举是优化穷举算法的关键。,穷举法的应用举例,3、,看到这张图后,你会有哪些疑问? 在着手破解之前,找出范围与约束条件。,For I = 0 to 99 a=25006 +I*10 if a mod 37=0 and a

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论