谈如何进行枚举法的教学

来源 :信息教研周刊 | 被引量 : 0次 | 上传用户:xielianqin
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  算法是程序设计的基础,有一个良好的算法,才能设计出的高效的程序。枚举法是程序设计中最常用的算法之一,它的基本原理是根据已知条件,在给定的范围内,对所有可能的答案按某种顺序逐一枚举和检验,找出符合条件的答案。日常生活中,用枚举法会显得十分笨拙和繁琐。而计算机运算速度快,保证了枚举算法的可行性,而且思路和程序也很简单,容易理解。本文结合笔者的教学经验,谈谈如何进行枚举法的教学。
  一、情境导入:猜数游戏
  导入新课时,笔者设计了一个猜数字的游戏,先由学生来猜一个0—9之间的数字,如果猜对,显示“恭喜你,答对了!”;如果猜不对,则显示“很遗憾,请重来!”程序代码如下:
  If Text1.Text = 8 Then
  Label1.Caption = "恭喜你,答对了!"
  Else
  Label1.Caption = "很遗憾,请重来!"
  End If
  因为可猜的范围很小,很多同学能很快完成。这时,可把猜数的范围调整为10—99,只需把上面程序中数字8换成任意一个两位数即可。这个程序没有使用枚举法的相关结构,但学生逐个数尝试的过程,就是一个枚举的过程,教师说的数字的范围就是枚举的范围,有助于学生理解枚举法的基本原理。
  二、讲授新课:枚举法的应用—— 一题多解
  例题:百钱买百鸡问题:公鸡、母鸡分别是五元钱一只和三元钱一只,而小鸡是一元钱三只。现在用一百元钱买一百只鸡。问:一百只鸡中公鸡、母鸡、小鸡各多少只?
  1.基本算法:三重循环
  设购买的公鸡、母鸡、小鸡数量分别为x、y、z,根据题意,可列出如下方程:
  ①x+y+z=100 ②5*x+3*y+z/3=100
  这个方程组有3个未知数,但只有两个方程,很明显方程的解不唯一。x、y、z的取值范围为0-100,可写出如下程序解决这个问题:
  For x:=0 to 100 do
  For y:=0 t 100 do
  For z:=0 to 100 do
  If (x+y+z=100) and (5*x+3*y+z/3=100) then writeln(x:5:0,y:5:0,z:5:0)
  2.算法优化一:缩小变量的枚举范围
  仍然采用三重循环,只是要缩小变量的枚举范围,以减少循环次数。因为总钱数有限,所以公鸡最多买20只,母鸡最多买33只,小鸡最多买100只,即x的取值范围为0-20,y的取值范围为0-33,z的取值范围为0-100。据此分析,可对上面的程序做出优化:
  For x:=0 to 20 do
  For y:=0 t 33 do
  For z:=0 to 100 do
  If (x+y+z=100) and (5*x+3*y+z/3=100) then writeln(x:5:0,y:5:0,z:5:0)
  3.算法优化二:两重循环
  由方程x+y+z=100,可推出z=100-x-y。这样,可只设x和y两个循环变量,把三重循环变成两重循环,进一步减少循环次数。对上面的程序修改如下:
  For x:=0 to 20 do
  For y:=0 t 33 do
  Begin
  z=100-x-y;
  If (x+y+z=100) and (5*x+3*y+z/3=100) then writeln(x:5:0,y:5:0,z:5:0)
  End;
  比较以上的3种方法,方法,1的循环次数101*101*101,方法2
  的循环次数为21*34*101,方法3的循环次数为21*34。
  可见,枚举法看起来简单,容易掌握。但要做到程序最优化也不容易,必须深入细致地研究问题本身,精益求精地优化算法,才能最大限度地提高程序的效率。
  三、拓展训练:用枚举法求解逻辑判断问题
  1.枚举思想在逻辑判断时的应用
  例题:警察局抓了A、B、C、D四名偷窃嫌疑犯,其中一人是
  小偷。审问中A说:“我不是小偷。”B说:“C是小偷。”C说:“小偷肯定是D。”D说:“C在冤枉人。”现在已经知道四个人中三人说的是真话,一人说的是假话,问到底谁是小偷?
  A、B、C、D四人中每人有两种情况,要么是要小偷,要么不是
  小偷。可以设两个值0和1, 0代表不是小偷,1代表是小偷。A、B、C、D四个变量的取值范围均为0-1。用枚举思想,把所以可能的情况列举出来,如果符合条件则输出。
  For A:=0 to 1 do
  For B:=0 to 1 do
  For C:=0 to 1 do
  For D:=0 to 1 do
  if ord(A=0)+ord(C=1)+ord(D=1)+ ord(D=0)=3 then
  begin
  if A=1 then writeln(”A is a thief”);
  if B=1 then writeln(”B is a thief”);
  if C=1 then writeln(”C is a thief”);
  if D=1 then writeln(”D is a thief”)
  end;
  2.逻辑判断课后练习题
  四个学生上地理课,回答我国四大淡水湖大小时这样说:
  甲:“最大洞庭湖,最小洪泽湖,鄱阳湖第三。”
  乙:“最大洪泽湖,最小洞庭湖,鄱阳湖第二,太湖第三。”
  丙:“最小洪泽湖,洞庭湖第三。”
  丁:“最大鄱阳湖,最小太湖,洪泽湖第二,洞庭湖第三。”
  对于每个湖的大小,每个学生仅答对一个,请编程确定四个湖的大小。
  四、枚举法的优缺点
  枚举法虽然本质上属于搜索策略,但是与后面要学习的深度优先搜索和广度优先搜索不同,它是一种“直译”的解题方法,优点和缺点并存。
  优点:枚举法一般是现实问题的直译,需要枚举大量的状态,甚至要穷举所有的状态,对其一一进行考查。因此比较直观,易于理解,算法的正确性也比较容易证明。
  缺点:枚举法的效率取决于需要枚举的状态数量以及单个状态的工作量,效率一般比较低。
  总之,用枚举法解题时,需要认真审题,不疏漏任何信息,根据题意准确地设置枚举对象、范围和约束条件。
其他文献
《国务院关于深入推进义务教育均衡发展的意见》中明确表示“着力提升农村学校和薄弱学校办学水平,全面提高义务教育质量,努力实现所有适龄儿童少年‘上好学’”。仅信息技术资源,作为村小除了安装国家远程资源接收器外,也都配备了相应的电脑设备,也开设了信息技术课。除中心校与相对大一点的村小外,其它村小基本没有完善的学生电脑室,甚至有的学校只有教师工作电脑。更为缺乏的是专业的信息技术教师(尽管大家都通过了信息技
期刊
要打点幸福的人生,我们不仅要坚持阅读,还要学会阅读,只有取法上,我们才能得乎其中。  生命是可以飞跃的,从教师到记者,从主编到总编,陶继新以自己的人生经历向我们诠释着一个平凡的生命是如何破茧为蝶,涅槃重生的。读罢山东教育报刊社编审陶继新的《做一个幸福的教师》后,心潮澎湃的我也开始寻找自己幸福的方向了。  小语界的名师闫学的《优秀教师是读出来的》一文和小数界的著名特级教师华应龙的《读出成就了今天的我
期刊
语文课标指出:语文课程应培育学生热爱祖国语文的思想感情,指导学生正确地理解和运用祖国语文,丰富语言的积累,培养语感,发展思维,使他们具有适应实际需要的识字写字能力、阅读能力、写作能力、口语交际能力。其中“正确地理解和运用祖国语文”是对“听、说、读、写”综合能力的总的描述和概括。可见,作为中学语文教师,我们要善于抓住教材中的练笔契机,不断提高学生写作水平。  一、充分利用字词,练习遣词造句  现有的
期刊
阅读教学是小学教学的重要组成部分。它是培养学生听说读写各种能力的重要环节,对于开拓学生的视野,发展学生的智力,以及学生世界观的形成,道德品质、意志品格的培养等都有着很大的作用。在小学语文的课堂教学中,阅读教学所占的比重最大。提高阅读教学的效率是提高小学语文教学质量的关键。在工作实践中,我试着对在阅读教学中发挥学生主体性,让学生主动参与学习,优化阅读教学过程等进行探索。  一、注重学生积累性阅读  
期刊
在初中数学教学中,学生自主学习的兴趣培养有着特殊的地位,它是学生学习自觉性和积极性的核心因素,是自主学习的强化剂。主动有兴趣的学习不仅能使学生全神贯注积极思考,甚至会使他们达到废寝忘食的境地。因此在数学教学中,教师要善于利用各种方法、途径,激发培养学生主动学习数学的兴趣。  一、利用数学本身的特征,激发主动学习兴趣  1.实用性。马克思指出:“一门科学只有成功的应用了数学,才算真正达到了完善的地步
期刊
初高中教学各自独立,缺少有效的沟通与交流,高中化学教师对初三教材内容的改变不熟悉,对初中化学教学情况缺乏了解,导致初高中化学教学内容脱节,知识出现断层。许多学生刚跨入高中,就感到难以适应高中化学的学习,有些甚至是初中的尖子生,进入高中后化学成绩一落千丈,感到学习化学十分困难,甚至影响其它学科的学习,过早出现学习分化现象,严重影响和制约了高中化学教学质量的提高。  鉴于以上问题,在教学中我们应该找准
期刊
身体语言【body language】是一种非语言交际,即通过表情、手势以及身体其它部位的动作来表达思想感情的一种无声语言。在英语教学中恰当地使用身体语言,也是优质教学的关键所在,用的好,不仅提高学生的兴趣,而且能帮助学生理解知识。  1.身体语言能吸引学生学习注意力  在课堂教学中,时常需要用身体语言与学生进行交流,像眼神、微笑、皱眉、点头、手势等等。这些非语言教学是一种随时就会出现的一种形式,
期刊
数学课程标准指出:“数学教学应该建立在学生认识发展水平和已有的知识经验基础上,教师激发学生的学习积极性,向学生提供充分从事数学活动的机会,帮助他们在自主探索和合作交流的过程真正理解和掌握基本的知识与技能,数学思想和方法,获得广泛的数学活经验,学生是学习的主人,教师是数学学习的组织者、引导者和合作者。”新课程以学生发展为中心,通过相互矛盾的内外事物引起学生认识的不平衡,引导学生完成解决问题的活动。 
期刊
生物学科是以实验、实践、调查为基础的自然科学,因此适时掌握教学方法,对学生实践创新能力培养很重要。  一、改变旧的实验课教学过程,创立适合培养学生创新能力的教学模式  在以往的实验教学中,实验材料、试剂、实验步骤都是课本上现成的。每次上实验課时,上课前由老师把实验需要的材料准备好,完全按照教材上的要求准备实验材料。在上实验课过程中,老师常常反复讲解每一个操作步骤,反复演示,生怕学生看不明白,怕学生
期刊
随着《数学课程标准》的实施,新课程理念的学习、思考与实践,几年来,师生的教学观念和学习方式都已发生了深刻的变化,自主、合作、探究等现代教学方式都已被广大教师接纳并积极运用到中小学的课堂教学之中,我们的数学课堂一改过去呆板、枯燥,逐渐活了起来,数学课堂的有效性已经引起广大教师的高度重视。我们的数学课堂如何用最少的时间,最小的精力投入,取得尽可能大的教学效果,以实现学生在轻松愉悦的师生互动中完知识技能
期刊