师:同学们,大家好。今天我们一起学习高一教科版信息技术第四单元算法之枚举法。首先,我们简单回顾一下上节课所学知识。上节课我们学习了算法的概念,即解决问题的方法和步骤。算法有五大特征,包括有穷性、确定性、输入项、输出项以及可行性。

  通过本节课,我们要达成以下目标:一是加深对算法及算法特征的理解;二是理解枚举法的含义及特点,归纳枚举法的思维方式;三是掌握枚举法的一般流程,学会编写简单程序实现枚举法。

  首先,来看一个问题情境:在一次精彩的比赛中,冠军是A、B、C、D当中的一位。A说不是我,B说是C,C说是D,D说C说的不对。已知这4个人当中有一个人说了假话,你能判断到底谁是冠军吗?能否通过程序来实现呢?

  我们来分析这个问题,在不知道谁说真话、谁说假话的情况下,最简单的方法就是将所有可能情况列举出来。也就是分别假设A、B、C、D是冠军,然后对这4个人的话进行真假判断,当满足说真话的人数为3时,该假设成立,就能找到谁是冠军。

  现在,请同学们拿出纸和笔填写以下表格,老师已经在表格第一行把冠军是A的情况列举出来了。用叉号表示说假话,用对号表示说真话。请完善当冠军分别是B、C、D时说真话的情况。

  师:好,我们一起来对一下答案。同学们,你们都答对了吗?通过表格最后一栏“说真话人数”,可以快速锁定,当我们假设C是冠军时,说真话的人数符合已知条件的3人。所以通过表格能清晰展示出冠军是谁。

  那么难点在于如何描述这个算法呢?首先,我们用熟悉的自然语言来描述:第一步,假设冠军的人员;第二步,判断说真话的人数。如果说真话的人数是3人,那么就输出冠军编号,重复以上步骤,直到A、B、C、D这四种假设情况都完成。

  接着,我们看看用流程图如何描述。程序开始时,定义了两个变量,分别是i和count。i是在A、B、C、D的情况下取值,表示假设的冠军编号变量;count用来记录说真话的人数。如果说真话的人数count等于3人,就进入相应流程,输出冠军编号,然后进行下一个假设,重复以上步骤,直到A、B、C、D四种情况全部假设完成,流程到“否”这一步,程序运行结束。

  要把它转换成程序设计语言,还存在一个问题,就是如何将文字语言转换成计算机能够执行的表达式。比如“A说不是我”,计算机无法执行这样的表达。我们用i来表示冠军选手编号的变量,那么这句话就可以表示为i不等于A。解决这个问题后,用程序设计实现这个算法就比较简单了。

  师:请同学们研读以下程序,补充完善这个注释。第一行注释老师已经给到大家了。这里有个小技巧,把A、B、C、D这四种情况放在一个列表当中,通过循环列表来枚举A、B、C、D四种情况。请同学们动笔补充完整这个注释。

  师:好,我们一起来核对一下答案。第二行注释是,用for循环来枚举每一个选手是冠军的情况,分别是A、B、C、D,用count用来记录说真话的人数。如果说真话的人数是3位,就输出i。

  这就是用枚举法来解决“谁是冠军”这个案例,同学们能不能总结归纳一下什么是枚举法呢?

  枚举法也叫穷举法,它是把所有可能情况一一列举,符合条件就保留,不符合条件就丢弃,直到找到所有符合条件的结果。这里要注意,在列举情况时要做到不重复、不遗漏。枚举法的优点是思路相对简单,易于理解。只要时间足够长,并且结果可能的情况是确定有限的,就能编写程序找到所有结果,它利用的是计算机运行速度快、精确度高的特点。

  枚举法在生活中的应用非常广泛,例如经典的鸡兔同笼问题、判断一个数是否是素数,以及用户注册时判断用户名是否已存在等,都可以用枚举法来解决。当然,枚举法也有适用条件:第一,要枚举的可能情况必须是有限的,否则计算机在有效的时间内无法完成计算,这也是算法有穷性特征的要求;第二,要枚举的可能情况必须是确定的,这是算法确定性的要求;第三,要枚举的可能情况必须能够转换成计算机可计算的,即具有可行性。

  接下来,我们通过枚举法解决经典的鸡兔同笼问题。问题是:笼子里有若干只鸡和兔子,从上面数有35个头,从下面数有94条腿,问鸡和兔子各有几只?这个问题有很多解决方法,1.2节我们应用过电子表格来求解。当时我们列了鸡的数量一栏,兔子的数量一栏,通过公式计算腿的数量,公式一拉,就能看到鸡和兔子的所有情况,快速找到腿的数量是94时,对应的鸡的头数是23,兔子的数量是12。这个表格其实就是把所有情况列举出来,与今天学习的枚举法思想类似。

  那么如何通过枚举法解决鸡兔同笼问题呢?其实就是一个个去验证。假设鸡有1只、2只、3只……一直到34只的情况,计算腿的总数,如果腿的总数等于94,那么当前鸡和兔子的数量就是我们要找的答案。

  用自然语言描述这个算法:第一,一一列举鸡的数量,从1到34只;第二,计算腿的数量;第三,如果腿的数量等于94,就输出鸡和兔子的数量,然后鸡的数量加1,重复以上步骤,直到列举完鸡的数量到34只。

>> 点击阅读全文
《信息技术 必修1 4.1算法及其特征(第二课时) 逐字稿-3,924字 第5版》.docx
将本文下载保存,方便收藏和打印
导出文档