内容发布更新时间 : 2024/11/5 13:26:54星期一 下面是文章的全部内容请认真阅读。
算法与程序设计——穷举法
算法与程序设计——穷举法 学校:广东省化州市第三中学 授课教师:严瑞珍 授课年级:高二 课时计划:1课时
一、教学目标
1、知识与技能
1)认识穷举法在日常生活中问题解决的应用,并认识到利用计算机用穷举法解决问题的高效。 2)了解穷举法的基本概念及用穷举法设计算法的基本过程。
3)分析建立正确的数学模型,归纳穷举法穷举技巧(穷举法的适用范围及变量定义范围)。 4)理解用穷举法设计程序的基本思路。能够根据具体问题的要求,使用穷举法设计算法,编写程序求解问题。
2、过程与方法
本节以“百钱买百鸡问题”入手,由浅入深讲解了穷举算法的思路。并利用“百钱百鸡”问题的解决过程引导穷举法解决问题的方法与过程,并由此类问题(电子邮箱密码问题的求解、水仙花数)引导学生对这一类问题抽象出具体的数学模型,运用穷举法能独立的实现程序。
3、情感态度与价值观
1)引导学生关注穷举法在社会生活中的应用,进一步提高利用信息技术解决实际问题的能力。 2)通过本节内容的学习,学生对设计算法求解问题有了进一步的认识,对设计算法的步骤更加熟练,思考问题更加严密和有条理,程序编制和调试更有经验。 3) 通过小组讨论与探究活动,提高团队合作能力,促进探究的热情。 4)本节的学习对算法知识的积累,对继续学习的激发有更加强烈的愿望, 5)在解决问题的过程中进一步培养和提升学生的逻辑思维能力。
二、教学重点和难点
教学重点:
1、 建立正确的数学模型,确定穷举方案。 2、 根据命题确定变量的取值范围。 3、 正确表达“符合条件”的判断。
4、 如何进行穷举法的优化,使得算法的效率更高
教学难点:
1、 分析问题,建立数学模型,构造算法,确定穷举的范围。 2、 恰当安排穷举的方式,使得算法的效率更高。 3、 如何评价各种穷举策略的优劣。
三、教材分析
教学内容:本节内容选自《广东省普通高中信息技术选修一:算法与程序设计》第四章第二节,内容包括:穷举法的基本思路,用穷举法求解问题(第一课时),穷举法中穷举方案的选择等(第二课时)。而本节课是穷举法的第一课时(用穷举法解决问题的基本过程)。
在本章第一节介绍了解析法之后,对于实际生活中列举类问题运用解析法不是太合适,所以引入第二种代表性的算法穷举法的介绍。
四、学生分析
本节内容的教学对象是高二年级学生,他们已经具备了一定的逻辑思维、分析问题、表达思想等能力。同时,通过前几个章节的学习与实践,学生已经历了用计算机解决问题的过程与
1
算法与程序设计——穷举法
步骤,学会了对计算机程序进行调试,并掌握了顺序、循环、条件三种程序结构,为本节内容的学习提供了良好的基础。前一节的学习,学生掌握了如何用解析法设计程序,但现实生活中也有很多问题往往无法用解析法找到答案,学生对于列举类的问题用解析法来实现感到困惑,这时就需要使用计算机来帮助我们逐个列举出可能的情况,从而引出本课内容 ——“ 穷举法”。因此对此类问题的归纳求解,学生应该掌握。
五、教学方法
主要教学方法:讲授法 演示法 任务驱动 情境教学 主要学习方法:小组协作 自主探究
六、教学环境
1、 预备知识:学生已掌握了用计算机解决问题的过程,掌握了VB界面设计的相关内容,掌握
了程序设计的基础,掌握了顺序、循环、条件三种程序结构,掌握了用解析法设计程序的方法。
2、 硬件要求:多媒体网络教室,最好有广播教学系统或投影仪,为拓展学习,学生机应允许
上互联网。
3、 所需软件:多媒体课件,学生机要安装VB6.0或以上版本。
七、教学过程
教学环节 教师活动 学生活动 教学意图 1、导入:假设你有一个QQ密码,已经很久没有打开了,现在你想打开它,但是忘了密码,你会怎么做? 情2、引导学生:我们可以先转动一个密境码位,然后固定其他密码位,一个一个导号码进行尝试。这个过程就叫做穷举。 入 3、提问学生:是否被人盗过密码(QQ 等),在学生气氛活跃后,提出知己知︵彼,给学生一个密码程序(2位自然数5密码),让学生体会一下,如果你是黑分客,你如何破解别人的密码。 钟4、观看:让大家观看3位、5位、6位︶ 密码用计算机暴力破截,用人工很耗时很艰难,可由机器完成,这样得出运用穷举法的原理,并讲出它的关键点:确定穷举范围。 1、 以“百钱百鸡”问题为例,让学生思考答案。 问题:公元前5世纪,我国数学家张丘建在《算经》一书中提出了一个“百钱买百鸡问题”。问题如下:鸡翁一值 1. 学生积极破解密码,看看2分钟内是否会有人破截出密码。 2. 请破解出的学生介绍经验(也就是一个一个去尝试),得到穷举法的概念。 3. 学生观看多位密码暴力破解,产生求知欲,认真听讲,积极参与,体会穷举法的基本思路。 选取学生都很感兴趣(QQ破解密码)作为导入案例,可以很好的调动学生积极性、活跃课堂气氛。同时将知识点巧妙地融入到算法当中,寓教于乐,学生感到亲切、自然。教学效果更佳。 1、学生们利用所学的用解析法设计程序的方法很快就列出了解析式: 设公鸡数为x,母鸡数为y,小鸡数为z,则有方程: 2
1、提出问题中使用的算法和破解密码的算法一样,提高学生对该算法的学习兴趣。 算法与程序设计——穷举法
讲授新知 ︵12分钟︶ 钱5,鸡母一值钱3,鸡雏三值钱1。百钱买百鸡,问鸡翁、鸡母和鸡雏各几何? 2、请思考这道题目:能否只用解析法就能解决?为什么会有不同的解?这些解对不对?是怎么得出这些解的? 3、归纳导入“穷举法”概念:像上面求解“百钱百鸡”问题时,列出所有可能的情况,逐个判断有哪些是符合问题所要求的条件,从而得到问题的解答,就叫穷举法,也叫枚举法 4、归纳穷举法(枚举法)的基本思想是:列举出所有可能的情况,逐个判断有哪些是符合问题所要求的条件,从而得到问题的全部解答。即将x、y、z的各种可能的值代入方程,看是否满足两个方程,如果满足,就是一组解 X+y+z=100 5*x+3*y+z/3=100 2、教师引领学生学生产生议论,三个未知分析问题案例,数,两个方程,如何求解? 使学生对穷举法2、学生会回答出不同的解: 有一个初步的认如公鸡是0,母鸡是25只,小鸡识。并形成积极是75只 思考的学习氛公鸡是4只,母鸡是18只,小鸡围。 是78只…… 先将公鸡数目设为0,列出3、让学生亲自参母鸡与小鸡的方程求解 与讨论,更好地再将公鸡数目设为1, 列激发学生的学习出母鸡与小鸡的方程求解 兴趣,促使学生再将公鸡数目设为2, 列积极思考,更有出母鸡与小鸡的方程求解 利于对穷举法的再将公鸡数目设为3,列理解。 出母鸡与小鸡的方程求解 ………………………… 3、学生分组讨论找出穷举法的特点 5、穷举法的实现:请思考刚才我们讨论了穷举的方法,能否让利用计算机速度快这一特点来求解“百钱百鸡”的问题?(也就是计算机编程) 1) 问题求解时可能的搜索范围(所有鸡的数目是在0-100之间),利用嵌套循环结构实现, 2) 问题求解满足的条件:所有鸡的数目之和是100,所花钱数是100, 3) 提出任务:让学生自己动手实践,编程实现“百钱百鸡”问题的求解。 4) 教师巡视,个别辅导,观察学生的编程情况 6、教师引出穷举法:计算机的优势就是具有高速计算的能力,因此我们利用这一优势,让计算机一个个的去试这些数,这种做法叫做“穷举法。 7、思考:循环次数是否可进一步优化?(穷举法的优化:) 将两组程序代码演示给学生,(详细代码请见附录:(代码一、二) 老师巡查发现同学们做出来的答案有两类错误。 3、思考教师提出的问题。 1) 和教师一起分析问题,建立数学模型,试用穷举法列举出所有可能答案。 2) 设计算法,并尝试用伪代码描述算法。 3) 编写程序 4) 上机实践,体验计算机穷举在解决现实生活问题中的作用与优势。 5) 将人脑穷举和计算机穷举进行对比。 4、学生尝试用为代码描述算法,体验穷举法解决问题。 5、在上机实践的过程中进一步体会穷举法的应用。 6、通过这个问题,让学生了解人用穷举算法解决问题的过程,然后过渡到计算机如何用穷举法解决问题 7、通过对比实验,使学生认识算法优劣在解决问题中的意义。 4、让学生作比较,比较附录:(代码一、二)下划线不同的部分请思考为什么? 问题分析:求解这类问题,首先要对复杂的逻辑关系进行分析、抽象、化简,用逻 3