1、第2单元 编程计算第1单元 初识数据与计算第3单元 认识数据第4单元 计算与问题解决第5单元 数据分析与人工智能信息技术信息技术(必修(必修1 1)4.1 4.1 算法及其特征算法及其特征学习目标 熟悉将解决问题的方法归结为一系列清晰、准确的步骤的过程。熟悉将解决问题的方法归结为一系列清晰、准确的步骤的过程。了解算法的基本要素和了解算法的基本要素和重要特征重要特征。运用恰当的方式运用恰当的方式描述算法描述算法。运用运用PythonPython语言实现简单算法,解决问题。语言实现简单算法,解决问题。活动1 寻找“开关对应关系”软件开发社团要招募新成员,报名的同学要经过面试才能加入。第一关面试题是
2、:软件开发社团要招募新成员,报名的同学要经过面试才能加入。第一关面试题是:“一个房间有一个房间有3 3盏灯,房间外有盏灯,房间外有3 3个开关分别控制这个开关分别控制这3 3盏灯,在盏灯,在只允许进房间一次只允许进房间一次的情况下,的情况下,如何判断哪个开关控制哪盏灯?如何判断哪个开关控制哪盏灯?”任务一 探讨面试题的解决方案1号开关2号开关3号开关1.分析问题灯的状态和特性灯有灯有亮、灭亮、灭两种状态两种状态开灯的同时会伴随发光发热,因此灯被触摸时还有开灯的同时会伴随发光发热,因此灯被触摸时还有冷、热冷、热两种状态两种状态第一步:打开1、2两个开关第二步:过2分钟后关闭1号开关第三步:进房间
3、,亮着的灯是由2号开关控制第四步:摸一下另外两盏不亮的灯,发热的灯泡是由1号开关控制第五步:不亮又不热的灯是由3号开关控制自然语言流程图关1号开关灯亮?灯热?该灯由2号开关控制该灯由1号开关控制该灯由3号开关控制解决问题的方法及步骤算算法法2.设计算法算法的特征算法必须能在执行算法必须能在执行有限个步骤有限个步骤之后终止。之后终止。算法中的每一次运算都有算法中的每一次运算都有明确的定义明确的定义,具有无二义性,具有无二义性,并且可以通过计算得到唯一的结果。并且可以通过计算得到唯一的结果。算法算法一定要有输出一定要有输出。任何算法都不能。任何算法都不能“无功而返无功而返 。一个算法一个算法有有0
4、 0个或多个输入个或多个输入,以刻画运算对象的初始悄况,以刻画运算对象的初始悄况,所谓所谓0 0个输入是指算法本身给出了初始条件。个输入是指算法本身给出了初始条件。算法中执行的任何计算算法中执行的任何计算都可以在有限时间内完成都可以在有限时间内完成(也称(也称为有效性)。算法中的运算都必须是可以实现的。为有效性)。算法中的运算都必须是可以实现的。有有4 4个分别装了个分别装了4 4种药丸的药瓶,里面每颗药丸都有单颗标准质量,其中有一个药瓶种药丸的药瓶,里面每颗药丸都有单颗标准质量,其中有一个药瓶中的所有药丸都被污染了。中的所有药丸都被污染了。每颗被污染的药丸比正常药丸增重每颗被污染的药丸比正常
5、药丸增重1 1克克。请在。请在只允许称量一次只允许称量一次的情况下,判断出哪个的情况下,判断出哪个药瓶中的药丸被污染了。药瓶中的药丸被污染了。改进算法0n10分析分析现象(可多选)现象(可多选)算法的特征算法的特征哪些信息属于输入:输入项:0个输入 1个输入 多个输入哪些信息属于输出:输出项:0个输出 1个输出 多个输出执行的结果:执行的结果:确定的 不确定的 都可以需要 步得到结果。执行的步骤:有限 无限 都可以题耗时 。执行的时间:有限 无限 都可以标准重量,称重后重量标准重量,称重后重量多出的重量多出的重量找到被污染的药瓶找到被污染的药瓶4几秒几秒输入项输出项确切性有穷性可行性设计算法回
6、顾算法的特点,思考一下,在这个问题中,哪些信息属于回顾算法的特点,思考一下,在这个问题中,哪些信息属于输入输入、哪些信息属于哪些信息属于输出输出呢?呢?请设计程序并运行,使输入10颗药丸的总重量及4种药丸的单颗准质量就可以看到结果,找到被污染的药丸。d=int(input(请输入每颗药丸的标准重量:)w=int(input(请输入药丸称得的重量:)x=print(被污染的药瓶序号是:,x)w-10*d这次面试的冠军在这次面试的冠军在A A、B B、C C、D D四位同学中。四位同学中。A A说:说:“不是我。不是我。”B B说:说:“是是C C。”C C说:说:“是是D D。”D D说:说:“
7、C C说的不对。说的不对。”已知四人中有一人说了假话。已知四人中有一人说了假话。活动尝试枚举不是不是我我是是C C是是D DC C说说的不的不对对ABCD任务二 求解“谁是冠军”解析:逐一假设解析:逐一假设A A、B B、C C、D D是冠军,判断是否正确。是冠军,判断是否正确。冠冠 军军A A说:说:“不是我。不是我。”B B说:说:“是是C C。”C C说:说:“是是D D。”D D说:说:“C C说的不对。说的不对。”ABCD枚举 有一种算法是有一种算法是把所有可能的答案一一列举把所有可能的答案一一列举,合适就保留,不合适,合适就保留,不合适就丢弃。这种方法称作就丢弃。这种方法称作“枚举
8、枚举”或或“穷举穷举”枚举法解决问题的一般结构:枚举法解决问题的一般结构:循环循环+判断判断。优势:易证明正确性优势:易证明正确性champion=A,B,C,D 设置选手列表for i in champion:#遍历champion列表cond=(i!=A)+_+_+_ if cond=3:print(“冠军是”,i)设计算法答案答案 冠军是冠军是:C C用程序求谁是冠军时,我们需要把每个人说的话转化成计算机能够执行的表达式。用程序求谁是冠军时,我们需要把每个人说的话转化成计算机能够执行的表达式。如如A A说:说:“不是我。不是我。”可以表示为可以表示为“i!=A”“i!=A”,其中,其中i
9、 i为枚举的冠军选手编号。为枚举的冠军选手编号。(i=C)(i=D)(i!=D)1下列Python程序无法执行,原因是它违反了算法的什么特征()for i in range(5):print(10/i)A有穷性B确定性C唯一性D可行性2下列关于算法特征的的描述,正确的是()A一个算法的每一个步骤必须有确切的含义B一个算法可以有多个输出,但是至少有一个输入C一个算法可以永无止境的进行下去D一个算法不一定必须可行,理论上想法对就可以执行巩固提升DA巩固提升3下列关于算法描述错误的是()A算法必须在有限步骤内实现B算法可以使用自然语言、伪代码、流程图等多种不同的方法来描述C算法是解决问题的方法和步骤 D一个有效的算法至少要有一个输入D课堂小结算法:解决问题的方法和步骤;算法的描述:算法的特征:有穷性:算法步骤有限;确切行:每一次运算的含义明确;输入项:一个算法有0个或多个输入;输出项:算法一定要有输出;可行性:在有限时间内完成;计算机解决问题的一般过程:自然语言流程图伪代码N-S框图PAD图程序代码具体具体问题问题分析问题分析问题问题问题解决解决设计算法设计算法编写程序编写程序调试运行调试运行巩固提升