内容正文:
课程基本信息
课题
枚举算法
教科书
书名: 信息技术必修1 《数据与计算》
人民教育出版社;中国地图出版社 出版日期:2019 年 6 月
教学目标
教学目标:
1. 理解枚举算法的基本思想;
2. 认识问题解决过程中枚举算法的效率,通过不同解题方法的比较,体验算法的优化,合理选择算法;
3. 体验程序设计的基本过程,通过对问题进行分析,根据实际问题的需要选用不同的算法,编写程序并进行调试和完善,形成用计算机解决问题的具体方案。
教学重点:
1. 理解枚举算法的基本思想;
2. 通过不同解题方法的比较,体验算法的优化并合理选择算法。
教学难点:
根据现实问题的需要,灵活运用枚举算法解决实际问题。
教学过程
时间
教学环节
主要师生活动
3
复习旧知
引入主题
在前面的学习中,我们学习了三种程序结构,了解了解析算法的思想:通过找出解决问题的前提条件与结果之间关系的表达式,并计算表达式的值来实现问题的求解。
解析法求解“鸡兔同笼”问题:今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?
除了解析法,有没有其他的方法解决鸡兔同笼问题呢?
回忆我们在循环结构中学过的密码破解的实例,能不能像破解密码一样,通过一个一个地去尝试,找到满足条件的鸡和兔的数量呢?
8
新知学习
算法思想
枚举算法的思想
例1.枚举法解“鸡兔同笼”问题
(1) 分析问题
① 本问题的已知条件是什么?求解目标是什么?隐含什么样的关系?
· x + y = 35
· 2x + 4y = 94
列举出所有可能,逐一尝试验证,输出其中满足题目条件的鸡兔数量,这就是枚举算法的思想。
② 用枚举算法实现解“鸡兔同笼”问题,如何进行问题拆解?
· 一一列举可能的解,即枚举范围是多少?
· 逐一检验可能的解,判断条件是什么?
(2) 设计算法:输入数据、处理数据、输出结果
逐一列举,用循环结构就可以解决。一一校验,则需要用到分支结构,验证哪些情况满足问题的条件,如果满足就输出。
(3) 编程调试
算法的优化:分析两种代码的循环执行次数,在解决实际问题的过程中,由于枚举算法需要将所有可能情况一一列举,当数据范围比较大时,要尽可能将枚举范围降至最小,提高解决问题的效率。
试一试:用自己的话说一说,枚举算法