资源简介 (共18张PPT)对象 数字 关 系C+C+A=C+10B+A+1=B+10B+1=AC+A=10A+1=10B+1=AA=9B=8C=1ABC未知未知未知?(5+6-3)×3=246×(5-3÷3)=246×(3×3-5)=24(6-3)×(5+3)=243×5+3+6=245×6-3-3=24怎么样才能把所有解法都找出来呢?获得所有可能的答案算法执教者:要在手机联系人里找到某个人,通常情况下,你会怎么做?w分治法(分而治之)把一个复杂的问题分成两个或n个相同或相似的子问题,再把子问题分成更小的子问题,直到最后子问题可以简单的直接求解,原问题的解就是子问题的解的合并。分治法(分而治之)首字母分类查找从30张面值不等的钞票中抽出10张,怎样才能获得最多的价值?贪心算法做出当前的最优选择。就是通过局部的最优选择获得整体的最优选择。每次都选择现下的钞票中面值最大的,最后拿到的就是最优解。解析法枚举法分治法贪心算法动态规划算法经过大量的实践,人们发现了算法某些共性的规律,总结了经典的算法思想。合理地选择经典算法思想,可以为具体问题的解决设计出更加精妙的算法。……“鸡兔同笼”问题需要在一定范围内寻找正确解,可以使用枚举法。枚举法的思想是 ,如果满足正确解的条件就采纳,否则继续枚举,做到不遗漏、不重复。在班级名单中查找符合条件的名字,通常我们会怎么做?认识枚举法一有序地尝试每一种可能的解9○ 13 ○ 7=100填上合适的+-×÷使得等式成立。玩24点游戏时在头脑中罗列各种可能的算式在一篇文章中摘录好词好句用一串没有标记的钥匙打开教室的门,通常你会怎么做?认识枚举法一如果让计算机通过枚举法,从一串钥匙中找到打开教室对应的那一把钥匙,我们需要告诉计算机什么信息它才能停止查找?如果这把钥匙能打开教室门,就不用再往下尝试了。正确解的判断条件一共有几把钥匙【这样,计算机就知道一共要试几次了】确定枚举的范围枚举法的关键否否是是是枚举法流程图认识枚举法一为什么在登录网站、APP、ATM自动柜员机时,系统要限制用户输入密码的次数?认识枚举法一为什么在登录网站、APP、ATM自动柜员机时,系统要限制用户输入密码的次数?为了保护财产安全,防止犯罪分子利用枚举法的思想破解密码。算法框架的确定二在明确枚举法算法思想的基础上,使用具体的计算模型,合理选择控制结构,可以得到解决具体问题的算法框架,最终解决问题,找到答案。鸡兔同笼计算模型ji+tu=35ji×2+tu ×4=940≤ji≤35 0≤tu≤35确定枚举的范围正确解的判断条件使用循环结构在0-35之间枚举ji或tu。使用分支结构判断是否满足正确解的条件如果……那么……重复执行……兔的只数(tu)鸡的只数(ji)总脚数是否满足正确解条件兔的只数(tu)0123535-035-135-20≤ji≤35 0≤tu≤35枚举兔的数量,完成表格的填写。ji+tu=35ji×2+tu×4=94确定枚举的范围正确解的判断条件……12……35-1235-35…………707274……94……140×××……√××鸡兔同笼算法的描述三描述算法时,要精准地描述算法的每一步骤,明确算法的输入和输出。对于大部分算法来说,输入数据是必要的,但是有的算法不需要输入数据或者算法本身给定了初始条件。比如鸡兔同笼的问题,就可以把tu的值初始化为0,因为是从0开始罗列的。枚举兔的数量,“鸡兔同笼”算法描述:1.兔子只数从0开始罗列。2.确定枚举范围:兔子是在罗列范围内吗?3.如果超出罗列范围,那么结束;如果没有超出罗列范围,那么计算鸡的数量。4.正确解的判断条件:兔子和鸡的只数符合条件吗?5.如果符合条件,那么输出兔子和鸡的只数;6.如果不符合条件,那么罗列下一个。算法的描述三除了枚举兔的数量,还可以枚举哪些数量?兔的脚数 4 8 …… 48 …… 92鸡的脚数 (94-4)÷2 (94-8)÷2 …… (94-48)÷2 …… (94-92)÷2总只数 46 45 …… 35 …… 23是否满足正确解条件 × × …… √ …… ×枚举法1.枚举法的思想是 地尝试 的解。2.枚举法的关键是① 。② 。有序每一种可能确定枚举的范围正确解的判断条件中小学教育资源及组卷应用平台第3课 算法设计预设教学目标:1.了解算法思想的概念,能够对问题选择合适的算法思想。2.了解经典算法中分治法、贪心算法和枚举法的概念;3.能清楚枚举法的概念和过程,学会使用枚举法进行算法设计。预设教学重点与难点:用枚举法进行算法设计。预设教学课时:1课时预设教学准备:课件、课本、学生练习学案等预设教学过程:一、课题导入【探索】1.上一节课我们学习了抽象与建模,知道了抓住问题的核心,理清关键要素之间的关系,有助于问题的解决。请你来看这道数学题。课件出示:破译字母算式解决这个问题主要的方法和步骤是怎么样的呢?算一算,写一写。学生思考并回答。课件出示表格。这个问题需要知道的目标是?(ABC)现在我们知道它们分别代表什么数字吗?(未知)那它们之间有没有关系呢?想一想列竖式计算中,它们之间会是什么关系呢?学生回答,课件出示。根据列出来的关系,是不是就能马上解决这个问题了?(出示结果)2.再看一道常见的计算24点游戏题,谁来说一说,你会怎么计算呢?学生回答。题目问有几种凑成24点的方法?怎么样才能把所有解法都找出来呢?就这需要我们通过算法来获取所有可能的答案。3.揭题:今天这节课我们就一起来学习第三课:算法设计。二、新知建构【各种经典算法】1.说到算法,经典算法有很多种,我们日常生活中就经常会用到。比如:要在手机联系人里找到某个人,通常情况下,你会怎么做?学生回答。是的,要是查找“王红”这个人,会先去找他姓“王”的首字母“w”,然后再查找“王红”这个人。这种方法就是分治法,简而言之就是分而治之,就是把一个复杂的问题分成两个或n个相同或相似的子问题,再把子问题分成更小的子问题,直到最后子问题可以简单的直接求解,原问题的解就是子问题的解的合并。比如:我们在查英文字典时,要想查找单词zoo,会先找到字母“z”,再去查找单词“zoo”,利用首字母分类查找的算法就是分治法。2.贪心算法如果从30张面值不等的钞票中抽出10张,怎样才能获得最多的价值?每次都选择现下的钞票中面值最大的,最后拿到的就是最优解。这种算法就是贪心算法,做出当前的最优选择。就是通过局部的最优选择获得整体的最优选择。平时生活中找零钱用的就是贪心算法,比如50元钱买了三块钱的东西,我们一般会找两个20元的,一个5元的和一个2元的。3.经典的算法还有很多,比如解析法、枚举法、动态规划算法等。经过大量的实践,人们发现了算法某些共性的规律,总结了经典的算法思想。合理地选择经典算法思想,可以为具体问题的解决设计出更加精妙的算法。“鸡兔同笼”问题需要在一定范围内寻找正确解,可以使用枚举法。今天我们重点来学习枚举法。【认识枚举法】1. 在班级名单中查找符合条件的名字,通常我们会怎么做?是的,从第一个名字开始,一个一个往下找,这种做法就是有序地尝试每一种可能的解,这也是枚举法的思想。枚举法,有个近义词叫列举,就是把所有的可能一个一个罗列出来,如果满足正确解的条件就采纳,否则继续枚举,做到不遗漏、不重复。它在生活有着广泛的应用,如玩24点游戏时在头脑中罗列各种可能的算式;在一篇文章中摘录好词好句;做这样的数学题等等。2. 用一串没有标记的钥匙打开教室的门,通常你会怎么做?学生回答。如果让计算机通过枚举法,从一串钥匙中找到打开教室对应的那一把钥匙,我们需要告诉计算机什么信息它才能停止查找?(如果这把钥匙能打开教室门,就不用再往下尝试了。)就这是在告诉计算机正确解的判断条件,不然计算机怎么知道找到怎样一把钥匙才可以解决问题呀。除了这个关键,还要告诉计算机有几把钥匙,这样计算机就知道一共需要尝试几次了,不然一串钥匙试完了再试一遍,那就没完没了了。就这是在确定枚举的范围。确定枚举的范围和正确解的判断条件是使用枚举法的关键。3.同学们,你知道怎样用流程图来表示枚举法吗?首先需要给定一个范围,在范围内进行查找,如果符合条件就把这个数据输出,否则就继续往下找,直到找完范围内所有的数据就结束。请你试一试,用拖动的方式,将枚举法的流程图补充完整。学生练习。反馈结果。4.想一想我们认识了枚举法,知道了枚举法的基本思想和关键,那么请你想一想:为什么在登录网站、APP、ATM自动柜员机时,系统要限制用户输入密码的次数?学生回答。是的。为了保护财产安全,防止犯罪分子利用枚举法的思想破解密码。【算法框架的确定】1.在明确了枚举算法思想的基础上,使用具体的计算模型,在合理选择控制结构,就可以得到解决具体问题的算法框架,最终解决问题,找到答案。我们继续上一节的“鸡兔同笼”问题,这是上一节课我们最后建立的计算模型。其中ji和tu的取值范围是0-35,这就是枚举的范围;而ji+tu=35;ji×2+tu×4=94就是正确答案的判断条件。判断对错,那就要用到如果……那么……,这是一种分支结构;枚举范围在0-35之间,就要重复尝试36次,从0开始,直到35结束,这就是循环结构。2.现在我们跟随着计算机来一起进行罗列,为了能看得更加清楚,我们用表格来进行罗列,出示表格。由于ji+tu是35,那么我们选择其中动物来进行罗列,比如罗列兔子的只数,从0开始,那么鸡的只数就是35减去兔子的只数。课件出示,学生边回答,边展示。【算法的描述】1. 算法的框架确定好后,我们再用流程图来描述算法。描述算法时,要精准地描述算法的每一步骤,明确算法的输入和输出。对于大部分算法来说,输入数据是必要的,但是有的算法不需要输入数据或者算法本身给定了初始条件。比如鸡兔同笼的问题,就可以把tu的值初始化为0,因为是从0开始罗列的。2.课件呈现“鸡兔同笼”问题的算法流程图。对照自然语言描述呈现流程图。3.除了枚举兔的数量,还可以枚举哪些数量呢?(鸡的数量)其实只要通过鸡兔同笼的数据关系,我们知道,只要知道鸡的数量,就能计算出其他的数量,所以除了可以枚举鸡的数量,或者兔的数量,鸡脚、兔脚的数量都能枚举,只不过枚举的范围和判断的条件可能会发生相应的变化。请你试一试,枚举鸡的数量,进行表格的罗列和流程图的描述。学生练习。三、课堂小结今天我们一起学习了算法设计,了解了一些经典的算法,比如分治法、贪心算法等,重点学习了枚举算法。1.枚举法的思想是 地尝试 的解。2.枚举法的关键是① 。② 。四、课后练习【机动安排】利用枚举法设计百钱买百鸡的算法,填写百钱百鸡的表格填写。21世纪教育网 www.21cnjy.com 精品试卷·第 2 页 (共 2 页)21世纪教育网(www.21cnjy.com)(共4张PPT)班级: 学号: 姓名:鸡的只数(ji) ……兔的只数(tu) ……总脚数 ……是否满足正确解条件 ……枚举鸡的数量,试着将流程图框拖动到右边对应的框中,将流程图补充完整。公鸡只数(g) 0 0 …… 20母鸡只数(m) 0 1 ……小鸡只数(x) 100-0-0 ……总价钱 100/3是否满足正确解条件 × …… 展开更多...... 收起↑ 资源列表 第03课 算法设计 教学设计.docx 第03课 算法设计 练习.pptx 第03课 算法设计 课件.pptx