高中信息技术枚举算法_第1页
高中信息技术枚举算法_第2页
高中信息技术枚举算法_第3页
高中信息技术枚举算法_第4页
高中信息技术枚举算法_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

枚举算法1.例1:一天小明回家看见妈妈好像有什么心事,于是小明关心地询问妈妈,怎么回事?妈妈告诉小明,她不小心将单位的记录账目的单据碰到了污迹,现在很难认出,这个数字是:113702?,怎么办?小明想了一想后,问妈妈这数有什么特点?妈妈说:“这数是144的整数倍”,马上,小明就帮助妈妈解决了这个问题。

第一步:列出所有可能的解

11370201137021113702211370231137029第二步:根据条件,检验出真正的解

一一列举这些解的同时,检验每一个可能解是否满足条件:是144的整数倍,如果是,则是我们要找的真正解,否则就不是。枚举法:象这种列举出问题的所有可能解,并在逐一列举的过程中,检验每个可能解是否是问题的真正解,若是,我们采纳这个解,否则抛弃它,这种解决问题的方法叫做枚举法。

注意:在列举的过程中不能遗漏,也不应重复。枚举算法找到的真正解不一定是唯一的。2.第一步:列出所有可能的解X=输出X开始i=0i<=9Ti=i+1结束F1137020+i返回第一步:列出所有可能的解

113702011370211137022113702311370293.第二步:根据条件,检验出真正的解

开始i=0i<=9X=1137020+ii=i+1结束TFTFXmod144=0或者int(x/144)=x/144输出X开始i=0i<=9X=1137020+iXmod144=0输出XTi=i+1F结束TF4.请同学们把程序填写完整5.问题的诊断PrivateSubCommand1_Click()Dimi,xAsLongList1.Cleari=0DoWhilei<=9x=1137020+iIfxMod144=0ThenList1.AddItem(Str(x))‘输出X的意思elsenothingLoopEndSub开始i=0i<=9X=1137020+iXmod144=0输出XTi=i+1F结束TFEndifi=i+16.编程中存在的问题——分支语句实现分支结构的语句if应该与endif成对出现,单分支语句中不存在else语句。二是在书写的时候,要注意执行语句的缩进,这样使程序看起来十分清晰,以方便我们的调试。

If条件then

语句组1

else

语句组2

endif7.编程中存在的问题——循环语句当循环语句中遗漏了loop(表示循环)的语句,以及在计数法控制循环中缺少了循环变量增量的语句,而造成了死循环。Dowhile条件循环体

循环变量=循环变量+步长loop8.例2:如果模糊数字是249??16,它是144的整数倍。第一步:列出所有可能的解249001624901162490216、、、24910162491116、、、24920162492116、、、2499916开始第二步:根据条件,检验出真正的解i=_____i<=X=i=i+1结束TF992490016+i*100Xmod144=0输出XTF09.提高题(模糊数据二):模糊数字是465?7?6,它是144的整数倍。第一步:列出所有可能的解千位数为0,十位数从0——9一一枚举:

4650706465071646507264650736、、、4650796千位数为1,十位数从0——9一一枚举:

4651706465171646517264651736、、、4651796千位数为9,十位数从0——9一一枚举:

、、、、、、4659706465971646597264659736、、、4659796开始i=<=9i=i+1结束TF注意:在列举出所有解的过程中,既不能遗漏也不应重复。十位数从0—9一一枚举0i10.提高题(模糊数据二):模糊数字是465?7?6,它是144的整数倍。第一步:列出所有可能的解千位数为0,十位数从0——9过一遍:

4650706465071646507264650736、、、4650796千位数为1,十位数从0——9过一遍:

4651706465171646517264651736、、、4651796千位数为9,十位数从0——9过一遍:

、、、、、、4659706465971646597264659736、、、4659796开始i=0<=9j<=9j=0X=j=j+1i=i+1结束TFTF4650706+1000*i+10*j注意:在列举出所有解的过程中,既不能遗漏也不应重复。 i11.提高题(模糊数据二):模糊数字是465?7?6,它是144的整数倍。第二步:根据条件,找出真正的解开始i=0i<=9j<=9j=0X=j=j+1i=i+1结束TFTF4650706+1000*i+10*jXmod144=0输出XTF千位数为0,十位数从0——9过一遍:

4650706465071646507264650736、、、4650796千位数为1,十位数从0——9过一遍:

4651706465171646517264651736、、、4651796千位数为9,十位数从0——9过一遍:

、、、、、、4659706465971646597264659736、、、465979612.注意在双重循环中,外循环每变化一次,内循环变量要取遍所有可能的值。13.请同学们列举生活中可以使用枚举算法来解决的问题14.课堂小结1、什么是枚举法:

列举出问题的所有可能解,并在逐一列举的过程中,检验每个可能解是否是问题的真正解,若是,我们采纳这个解,否则抛弃它。2、枚举法的特点:在列举的过程中,真正解不一定唯一既不能遗漏也不应重复,3、注意:并不是所有的问题都可以使用枚举算法来寻找答案的,仅当问题的所有可能解的个数不太多时,才有可能使用枚举

温馨提示

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

评论

0/150

提交评论