内容正文:
第二章
算法与程序实现
2.4.2基于枚举算法的问题解决
1
目 录CONTENTS
01
提出问题 引发思考
02
核心学习 枚举算法
03
学以至用 解决问题
04
项目实战 优化为营
05
阅读拓展 网络探索
2
提
出
问
01
题
3
提出问题
1、开展凑24游戏,1到10,10个数,随机抽出四个数,任意作“加、减、乘、除”四则运算,找出一种运算结果等于24的方法。(比如“5,4,6,2”四个数,那么方法为:5*4+(6-2)=24。)
2、某羽毛球赛共有23支队伍报名参赛,赛事安排23支队伍抽签两两争夺下一轮的出线权,没有抽到对手的队伍轮空,直接进入下一轮,那么,本次羽毛球赛最后共会遇到多少次轮空的情况?(公务员考试题)
3、 如图 某同学要从甲地到乙地和丙地游玩,其中从甲地到乙地有2条路线
可走,从乙地到丙地有3条路线可走,从甲地到丙地共有4条不同的路线可走,
问从甲地到丙地共有多少种不同的走法?
思考下列问题:
4
1、以上问题的是否有相同规律?尝试进行归纳总结。
2、进行推理,请说出相关的解决方法。
小组探究:
提出问题
5
枚
举
算
02
法
6
核心学习
枚举算法
在进行归纳推理时,依据问题的已知条件,确定答案的大致范围,在此范围内列举出它所有可能情况的方法。
枚举算法的定义:
在列举过程中,既不能遗漏,也不能重复,通过逐一判断,验证哪些情况满足问题的条件,从而得到问题的答案。
7
核心概念
1、确定枚举对象、范围和判定条件。
2、逐一枚举可能的解,并验证每个解是否是问题的解。
枚举算法的基本思路:
枚举算法
8
枚举算法
开始
输出该枚举值
枚举值在给定的
范围中吗?
取下一个枚举值
结束
枚举值符合给定
的条件吗?
N
N
Y
Y
枚
举
算
法
流
程
图
列举,采用循环来实现;逐个检验,采用选择来实现。
9
枚举算法
1.模糊数字问题
例:一个五位数,万位和百位不知道,但是57和67的倍数,求所有的可能性。(直接枚举所有情况,判断即可)。
2、百钱买百鸡问题
公元6世纪,中国的《张丘建算经》有一道著名的百鸡问题:“今有鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一,凡百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?”
3、填写运算符问题
添加