2.4.2基于枚举算法的问题解决 教学设计(表格式) 2023—2024学年人教_中图版(2019) 高中信息技术必修1

资源下载
  1. 二一教育资源

2.4.2基于枚举算法的问题解决 教学设计(表格式) 2023—2024学年人教_中图版(2019) 高中信息技术必修1

资源简介

课题2.4.2 基于枚举算法的问题解决
学科 信息技术 年级 高一 班 级 授课教师
章节 第二章第三节 程序设计 课题名称 基于枚举算法的问题解决
课型 新授课 授课时间
课标要求 理解枚举算法的基本原理和求解问题的基本过程,能够完善程序代码实现算法。掌握枚举算法解决问题的基本过程,学会使用枚举算法解决生活中的实际问题,提高信息安全意识
教学目标(核心素养) ·通过“票据中模糊数字推断”情境,分析数字推断的过程,理解枚举算法的基本原理。(计算思维) ·通过“百钱白鸡”“水仙花数”任务,了解枚举算法求解问题的基本过程,能用流程图描述该问题求解的算法,能编写程序并调试运行,实现问题求解。(计算思维) ·体验枚举算法的执行效率,认识优化算法的必要性。(计算思维) ·通过与生活实例的结合运用,学会使用枚举算法解决生活中的实际问题,提高信息安全意识。(信息社会责任)
教学重点 建立正确的数学模型,确定枚举方案。
教学难点 恰当安排枚举方式,感受不同算法的执行效率,体验算法优化在解决中的价值。
教学方法 讲授法,案例分析法、探究法。
教学过程
教师活动 学生活动 二次备课
新 课 引 入 一、情景引入: 模糊数字推断问题: 票据上有一个4位数字组成的编号: 甲说:数字编号的前两位数字相同,但都不是零; 乙说:数字编号的后两位数字是相同的,但与前两位不同; 丙说:数字编号是一个整数的平方。   请根据以上线索推断出编号。 教师:巡视学生学习情况,指导和帮助学生自主、协作学习,调控课堂气氛。 根据任务需求,学生枚举的方法寻找答案,找出已知条件,求解问题以及隐含关系
教 学 环 节 二、分析问题: 已知条件 : 四个数字应是AABB,其中A≠0,A≠B,且AABB是一个整数的二次方 求解目标 : 票据中的数字 已知与未知的关系 :要求解的4位数字的编号必须同时满足所有的已知条件。 图1 分析问题示例 设计算法: 根据问题分析,只要一一列举出4位数字AABB中A与B的所有可能组合,保证A≠B 且A≠0.再验证二次方问题,就可以得到同题的解。因此,该问题可使用枚举算法求解完成 用枚举算法实现解“票据中的数字”问题,如何进行问题拆解? 本问题的已知条件是什么?求解目标是什么?隐含什么样的关系? 一一列举可能的解,即枚举范围是多少? 逐一检验可能的解,判断条件是什么? 设计算法:输入数据、处理数据、输出结果 逐一列举,用循环结构就可以解决。一一校验,则需要用到分支结构,验证哪些情况满足问题的条件,如果满足就输出。 编程实现与调试: import math for A in range(1,10): for B in range(0,10): if A!=B: k=A * 1000+A * 100+B * 10+B c=int(math.sqrt(k)) if c*c==k: print("票据编号是:",k) 二、枚举算法 枚举算法:依据问题的已知条件,确定答案的大致范围,在此范围内列举出它所有可能情况的方法。 枚举算法适合解决求解的答案数量有限,并且可能的答案是能按照某种规则列举出来的问题。例如,用枚举法解决一些数学问题(“韩信点兵”“鸡兔同笼”等),益智游戏和逻辑推理等。 应用枚举算法解决问题 1、-水仙花数 “水仙花数”是指一个三位自然数,其各位数字的立方和等于该数本身。 例如153是“水仙花数”,因为:153 = 13 + 53 + 33。 已知条件 : 一个三位自然数,其各位数字的立方和等于该数本身 求解目标 : 求水仙花数 已知与未知的关系 :要求解的这个数必须同时满足所有的已知条件。 设计算法: 通过分别枚举三位自然数的百位、十位和个位数字,计算生成一个三位自然数,再去判断它是否是水仙花数。 用枚举算法实现解“水仙花数”问题,如何进行问题拆解? 分析问题 ① 本问题需要存储哪些数据,各是什么类型? ② 用枚举算法实现解“水仙花数”问题,如何进行问题拆解? 一一列举可能的解,即枚举范围是多少? 逐一检验可能的解,判断条件是什么? 如何分离各位数字,并得到三位数字的立方之和? 设计算法:输入数据、处理数据、输出结果 编程调试 2、百钱白鸡问题(本节课作业zuoye11) 分析问题:1.公鸡每只5元,母鸡每只3元,小鸡3只一元; 2.用100块钱买100只鸡,问公鸡、母鸡、小鸡各多少只? 已知条件 : 公鸡每只5元,母鸡每只3元,小鸡3只一元,用100块钱买100只鸡。 求解目标 : 公鸡、母鸡、小鸡各多少只? 已知与未知的关系 :要求解的公鸡、母鸡、小鸡各多少只,必须同时满足所有的已知条件。 设计算法:rooster, hen, chick,分别代表公鸡、母鸡和小鸡的购买数量,根据问题分析,只要一一列举出的所有可能组合,保证rooster + hen + chick =100且rooster*5 + hen*3 + chick/3 = 100,就可以得到同题的解。因此,该问题可使用枚举算法求解完成. 确定范围:公鸡最多20只,母鸡最多33只,小鸡最多100只 满足条件: rooster + hen + chick =100 rooster*5 + hen*3 + chick/3 = 100 程序代码(红色部分为学生补充的内容): #mPythonType:1 for rooster in range(101): for hen in range(101): for chick in range(101): if rooster + hen + chick ==100 and ooster*5 + hen*3 + chick/3 == 100: print(f'公鸡{rooster}只,母鸡{hen}只,小鸡{chick}只.') 算法优化后的程序 #mPythonType:1 for rooster in range(21): for hen in range(34): if rooster*5 + hen*3 + (100-rooster-hen)/3 == 100: print(f'公鸡{rooster}只,母鸡{hen}只,小鸡{100-rooster-hen}只。') 分析讨论:两种代码的循环执行次数有什么不同?在解决实际问题的过程中,由于枚举算法需要将所有可能情况一一列举,当数据范围比较大时,要尽可能将枚举范围降至最小,提高解决问题的效率。 讨论归纳:在应用枚举算法求解问题时,需要考虑优化算法,选择恰当的枚举对象,尽量分析出问题中的隐含条件,缩小枚举范围,以提高解决问题的效率。 学生体会和理解提炼枚举法的技术思想,使学生解决问题的能力可迁移,提高计算思维 学生体验枚举法解决问题的全过程 学生通过该问题理解和掌握语句之间的逻辑关系,通过程序的缩进来体现逻辑关系 观察与思考,完成算法流程图,总结枚举算法的基本原理。 观察程序,体会用计算机程序解决问题的优势。 学生通过该问题理解和掌握语句之间的逻辑关系,通过程序的缩进来体现逻辑关系 观察与思考,应用枚举算法解决问题-- 水仙花数。总结枚举算法的基本原理。 观察程序,体会用计算机程序解决问题的优势。 观察与思考,应用枚举算法解决问题-- 百钱白鸡。。 观察程序,体会用计算机程序解决问题的优势。比较两个程序我们发现,同一个问题,可以从不同的角度思考,实现问题求解。引导学生在算法的学习中,要多思考,多和身边的同学们讨论,碰撞出更多思维上的火花。 知识总结,系统归纳。回忆课堂学习过程,提高对枚举算法的认识。加深对所学知识的认识与理解,学会评价各种枚举方案的优劣。 通过票据中的数字的学习学生掌握了枚举法,使用嵌套循环逐一的例举出结果,学生此时趁热打铁让学生完成了水仙花数的程序。
课 堂 小 结 本节课通过推算模糊数字和求解素数的问题解决,让我们认识了枚举算法以及枚举算法解决实际问题的过程与方法,我们重点要深刻认识什么是枚举算法,其次对于简单问题能够应用枚举算法解决并编写代码,对于复杂问题的解决,要懂得枚举算法的原理与机理,同时要学会在问题的解决过程中优化算法,这是本节课的重要目标。
课 后 作 业 利用枚举算法解决“百钱百鸡”问题
板 书 设 计
教 学反 思

展开更多......

收起↑

资源预览