枚举算法byfanjn.ppt

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

情境一—农农的惊喜 农农是个顽皮但善于思考的学生。农农家在小镇上开了一家商店,有一天,农农的爸爸进了一箱福娃水晶球 ,他要农农帮忙送到妈妈店里。能帮父母做点事了,农农好开心?。 爸爸还叮嘱农农将进货单交给妈妈, 没等爸爸的话说完,他就迫不及待地骑上三轮车出发了。途中,农农一直在想:这福娃水晶球不知长啥样? 于是,农农停下来打开箱子,发现水晶球上的福娃神态各异,栩栩如生,真是太漂亮了,农农发出了啧啧的赞叹声。“我最喜欢福娃欢欢了,我要把所有的欢欢水晶球都找出来。” 何谓枚举法 枚举法也称为穷举法。 基本思想:按照问题要求确定答案的范围,然后在此范围内,考虑各种可能的情况,把所有的可能性一个个尝试过来,不遗漏、不重复,并对所得的结果逐一进行判断,过滤掉那些不合要求的,保留那些合乎要求的结果。 情境二—农农的烦恼 农农把所有的欢欢水晶球都找出来放在路面上了 ,“哇,原来有这么多欢欢水晶球(足有几百个)。” 农农自言自语道。顽皮的农农开始用“韩信点兵”的方式排列起了欢欢水晶球,发现将所有的欢欢水晶球按三个三个排列,最后多出来一个;按五个五个排列,最后多出来二个;按七个七个排列,最后多出来三个。突然他听到了汽车的喇叭声,农农慌忙往路边躲闪,汽车从身边呼啸而过。 “OH,My God!还好没撞到。”农农正为自己庆幸,但马上又发现漂亮的欢欢水晶球已面目全非,全碎了。这可怎么办呀?农农禁不住大哭起来...... 这时,汽车停了下来,司机忙跑过来问道:“小朋友别哭,有没有伤着呀?告诉叔叔被撞坏的水晶球数量,叔叔会赔给你的。”听到叔叔说会赔,农农这才停止了哭泣,忙从口袋里拿出纸擦干了眼泪,并把排列欢欢水晶球的情况告诉了他,可两人算了半天也没算出个结果。 情境三—农农的收获 我们在100~999范围内求出9个答案,但是到底是哪个呢? 这时,农农想起了出发前爸爸给他的进货单,咦,可进货单在哪呢? 哦,农农想起来了,原来进货单被他擦完眼泪扔了。于是他马上在路边找了起来,费了好大劲,最后终于找到了,打开一看,欢欢水晶球一栏上写着:“欢欢水晶球数量:1**,……。”可惜后面的二个数字因为泪水,变得模糊了。 农农终于知道了答案,最后司机没有食言,农农开心去妈妈那儿了(因为水晶球没白碎,而且还学到了一些知识)。 课堂小结 枚举算法解题的基本思路: (1)确定答案的可能范围,用循环语句实现。 (2)写出判断条件,用分支语句实现。 (3)程序优化(缩小枚举范围) 注意:枚举过程应不重复、不遗漏 课堂实战 农农把剩下的水晶球送到了妈妈店里,共有140个,农农妈妈想把水晶球进行装盒出售。现有大、小两种盒子,小盒每盒可装10个、大盒每盒可装15个,要求大小盒子都要用到且每盒都必须装满,求出所有可能的装盒方案,并统计方案数。 [问题描述] 共有140个水晶球需要装盒。现有大、小两种盒子,小盒每盒可装10个、大盒每盒可装15个,要求大小盒子都要用到且每盒都必须装满,求出所有可能的装盒方案,并统计出方案数。 某同学设计的程序界面和程序代码如下所示: Private Sub Command1_Click() i为小盒数量,j为大盒数量,t为方案数 Dim i as Integer, j as Integer, t as Integer t = 1 For i = 1 To 100 For j = 1 To 100 If 10 i + 15 j = 140 Then List1.AddItem Str(i) + + Str(j) t = t + 1 Next j Next i Text1.Text = Str(t) End Sub 设计枚举算法时应注意的问题 (1)变量的初始化 (2)表达式书写的规范化 (3)程序结构的完整性 (4)程序的优化(枚举范围尽量小) * * 桐乡市高级中学 范建农 确定范围 对象枚举 条件判断 输出答案 开始/结束 处理框 输入输出框 判断框 流程线 流程图构件 连接框 开始 从第一个水晶球开始 箱中还有水晶球? Y 拿起一个水晶球 结束 是欢欢水晶球? Y 取出水晶球 N N 下一个 问题分析: 确定答案范围: 给出判断条件: 基本思想: 几百个 (即100~999) 三三排列剩一,五五排列剩二,七七排列剩三 枚举思想 算法表示: 流程图 For j=100 to 999 开始 答案的个数置初值:n?0 j=999? Y 答案个数计

文档评论(0)

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

教师资格证持证人

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

领域认证该用户于2024年04月12日上传了教师资格证

1亿VIP精品文档

相关文档