资源简介 (共31张PPT)UNIT 2 · LESSON 10 · 算法的效率浙教版 小学信息科技 · 六年级上册 · 第二单元 算法的效率“韩信点兵”枚举法的实现枚举三步:定范围 · 定条件 · 逐个试主讲教师:×××学校:×××小学带出去 1500 名士兵,回来多少人?本课导航CONTENTS本课导航让计算机一个一个试,范围准,试得就少。01承接:上一课那把尺子02读题:把故事变成算式03枚举法三步:定范围、定条件、逐个试04第一步:算出该试的范围05第二步:把三句话写成式子06练一练,理一理小浙提示先看这一课要走的六站,心里有个数。0203本课学习目标第二单元 算法的效率 · 第 10 课01能说出枚举法要确定的两件事:枚举的范围和正确解的条件。02能把“3 人一排多 2 人”这样的话写成 x % 3 == 2 这样的式子。03能说清枚举 1000~1100 要试 101 次,并算出 1073 是第 74 个试到的。04能说出范围定小了会漏解、定大了要多试很多次。一句话:先说清要试哪些数,再说清什么样的数才是答案。小浙提示读一遍目标,重点看“数一数试了几次”这一条。0304承接:上一课那把尺子第一部分 · 从上一课接到本课上一课数了循环执行几次,比出了算法的好坏。这一课换个新问题,继续用这把尺子。上一课一把量快慢的尺子问题规模相同时,数一数算法里循环语句执行了几次:次数少,花的时间就短。这一课换一个老问题:韩信点兵还是用这把尺子,量一量新算法——它要试多少次才能找到答案。尺子还是那把尺子,换道题再用一次。小浙提示一句话接上:尺子还是那把尺子,换道题再用一次。0405读题:韩信点兵讲的是什么知识建构 · 问题描述韩信不用一个一个数:让士兵换几种排法,就把剩兵人数算出来了。原有带出去 1500 名韩信带 1500 名士兵出征。伤亡死伤四五百人回来的兵,比 1500 少四五百。排法三种排法报余数3 人一排多 2 人5 人一排多 3 人7 人一排多 2 人三个余数都对上,就说明人数试对了——问题是:该从哪个数试起?先别急着试,先把故事读成一道数的问题。小浙提示让学生自己读题,先说清题目给了哪三个条件。0506核心:把故事变成算式知识建构 · 抽象与建模抽象与建模:用变量表示人数,把三句话写成三个式子。01用变量 x表示剩下的士兵总数——它就是我们要找的那个数。02从伤亡推出范围死伤四五百人:x 在 1000~1100 之间。03三句话写成式子x % 3 == 2、x % 5 == 3、x % 7 == 2,三个都满足。模型:在 1000~1100 里,找到同时满足三个式子的那个 x。故事讲完了,接下来只剩三个式子。小浙提示重点讲第三行:三句话怎么变成三个式子。0607核心:枚举法怎么试核心页 · 本课落点一 · 枚举三步枚举法:按一定范围有顺序地尝试每一种可能,做到不遗漏、不重复。第一步定范围先说清要试哪些数——这里试 1000~1100。第二步定条件把三句话写成式子:三个余数都要对上。第三步逐个试范围里的数一个一个试过去,对上了就是答案。三步里最容易漏的是第一步:范围定不准,后面试得再多也没用。定范围、定条件、逐个试——顺序不能颠倒。小浙提示指着三步读一遍:定范围、定条件、逐个试,顺序不能颠倒。0708核心:第一步 · 算出该试的范围核心页 · 枚举范围怎么定范围不是随便定的,要从题目里的“死伤四五百人”算出来。01范围下限1500 500 = 1000:死伤最多五百,剩兵最少 1000。02范围上限1500 400 = 1100:死伤最少四百,剩兵最多 1100。03一共几个数1000~1100 一共 101 个数,每个都要试一遍。所以枚举范围是 1000~1100——一共 101 个数,也就是最多试 101 次。范围是从条件里算出来的,不是拍脑袋写的。小浙提示追问“1000 是怎么算出来的”,让学生说出 1500 500。0809范围有了,条件怎么写第二部分 · 从范围走到条件范围告诉我们“试哪些数”。还要回答另一个问题:怎么判断一个数是不是答案?已经有的范围已定101 个数,一个一个试。还缺的怎么判断要把三个余数都对上。要学的取余运算用 % 求余数,把三句话写成式子。先定范围,再定条件——这两件都清楚了,才好动手写程序。范围有了,接下来把三句话翻译成式子。小浙提示先问“试哪些数定了吗”,再问“怎么判断试对了”。0910核心:第二步 · 定条件(%)核心页 · 取余运算判断余数要用取余运算:x % y 得到 x 除以 y 的余数。取余运算(示例)5 % 2 = 17 % 3 = 11000 % 3 = 1写成式子三句话 → 三个式子3 人一排多 2 人 → x % 3 == 25 人一排多 3 人 → x % 5 == 37 人一排多 2 人 → x % 7 == 2“多几人”就是“余几”——多 2 人就写 == 2。整除的时候余数是 0,一个也不多。小浙提示带着学生念一遍:x % 3 == 2,多几人就是余几。1011核心:三个条件要同时满足核心页 · 逻辑运算符 and三个余数都要对上,少一个都不行——用 and 把三个式子连起来。同时满足三个条件x % 3 == 2 and x % 5 == 3 and x % 7 == 201试 10001000 % 3 = 1,第一个式子就对不上,跳过。02试 1073三个余数依次是 2、3、2,全部对上,就是答案。and 的意思是“而且”:只要有一个式子不对,这个数就不是答案。三个条件同时满足,才算试对了。小浙提示拿 1000 试一遍,第一个式子就不对,体会 and 的作用。1112核心:第三步 · 逐个试核心页 · 算法框架把范围、条件合起来,就是一个循环里套一个分支。01① 起步x ← 1000,从范围里最小的数开始试。02② 判断还在范围里吗x < 1101 就继续试,否则结束。03③ 判断三个条件三个余数都对上就输出 x,否则跳过。04④ 试下一个x ← x + 1,回到②接着试。结构提示:循环结构(②④)里套着分支结构(③)。小浙提示让学生在任务单上把②④圈起来,这就是循环结构。1213核心:写成程序核心页 · 枚举法的程序实现把算法翻译成 Python:一个 while 管尝试,一个 if 管判断。x = 1000while x < 1101:if x % 3 == 2 and x % 5 == 3 and x % 7 == 2:print("剩余的士兵数为:", x)x = x + 1运行结果:剩余的士兵数为:1073 ——和韩信算的一样。把 1000 换成别的数,它就从别的数开始试。小浙提示逐行读程序,注意 x = x + 1 这一行。1314核心:数一数要试几次核心页 · 本课落点二上一课那把尺子又用上了:数一数这个循环一共执行几次。逐个试到 1073:它是第 74 个被试到的数范围里一共 101 个数,循环最多执行 101 次。如果一找到就停下来(加一句 break),只要 74 次。范围定得越准,要试的次数就越少——这就是“做得省”。会算次数,才知道该从哪里省。小浙提示先问“最多几次”,再说 101;再问“第几个试到”,答案是 74。1415活动一:把故事写成条件学生活动 · 任务单活动一把韩信的三句话翻译成式子,再把范围补上。题目里的话写成式子3 人一排多 2 人x % 3 == 25 人一排多 3 人7 人一排多 2 人死伤四五百人x 的范围:______ ~ ______先写式子,再定范围——两步都写清才叫建模。小浙提示先让学生独立填写,再同桌对一对。1516活动二:走一遍枚举过程学生活动 · 任务单活动二照着程序往下走:填出每次试的数算出来的余数。试到第几次试哪个数x % 3x % 5x % 7是不是答案第 1 次1000第 2 次1001第 74 次1073填完想一想:1073 前面那 73 个数,为什么都不是答案?一个一个试,试到第 74 个才全部对上。小浙提示第 2 次那一行余数最好算,先填它找找感觉。1617活动三:改一个题再算一遍学生活动 · 任务单活动三还是 1500 名士兵,改成“死伤一二百人”,三句话也换一换。要做的先自己填一填对一对(填完后看)范围x 在 ______ ~ ______1500 200 = 1300;1500 100 = 1400条件x % 3 == 1、x % 5 == 4、x % 7 == 3三句话都换了余数答案枚举 1300~1400,得到 ______第 ______ 个数被试到范围还是 101 个数,试的次数没变——可答案换了。换一道题,三步还是那三步。小浙提示提醒:范围还是 101 个数,换的是条件和答案。1718想一想:范围定得准不准议一议思维 · 本课落点同一个问题,范围写得不一样,结果会差到哪里去?写小了漏掉答案写成 1000~1050:只试 51 次,可 1073 在外面。写大了白试很多次写成 0~1500:要试 1501 次,白试太多。定准了又对又省写成 1000~1100,只试 101 次就找到 1073。范围要刚好把答案圈住:既要“不漏”,又要“不浪费”。范围定得准,是枚举法最关键的一步。小浙提示三种写法摆在一起比,学生自己就能说出落点句。1819辨一辨练一练说法对 / 错我的理由枚举的范围要从题目条件里推算出来。“7 人一排多 2 人”可以写成 x % 7 == 2。三个条件同时满足,中间用 and 连接。枚举的范围定得越大越好,反正在计算机里试得很快。用枚举法时,范围里的每个数都要试到,不能漏。枚举法找到答案靠运气,碰巧试到了才对。说清理由,比只写一个“对”或“错”更重要。小浙提示重点看第 4、6 句,理由要写出来。1920议一议:还能怎么试得更少议一议枚举法一个一个试,还有没有更省的办法?把范围缩更准先粗筛先用一个条件去掉一半的数,再试剩下的。找到就停下来及时收手一找到答案就跳出循环,不再往下试。换个思路算别硬试先找出答案的规律,再直接算出来。同一个问题,试的办法不止一种——下一课先学筛选法。办法不止一种,先把枚举法用熟。小浙提示让学生先举例,再说说哪种办法最省。2021练习与小结:再算一遍账第三部分 · 练一练,理一理01练习14 题分三层:基础 1—5、提升 6—10、综合 11—14。02讲评重点讲第 6、7、9、11、12 题,说清为什么。03小结理一理:定范围 → 定条件 → 逐个试 → 数次数。做完就讲,讲完就理——这一课才算收口。小浙提示讲清练习分三层,错了不用急,先看是哪一层。2122随堂练习(一)基础题 1—5题号题目和选项我的答案1原有 1500 名士兵,死伤四五百人,剩兵 x 的范围应该定在哪里?A 1000~1100 B 1300~1400 C 0~15002用枚举法解决问题,第一步要做的是什么?A 确定枚举的范围 B 给变量取个短名字 C 程序写得越短越好3在 Python 里,x % 3 表示什么?A x 除以 3 的商 B x 除以 3 的余数 C x 乘 34“5 人一排多 3 人”,用式子表示是哪一个?A x % 5 == 3 B x / 5 == 3 C x % 3 == 55三个条件要同时满足,式子之间用什么连接?A 逗号 B and C 分号小浙提示第 1 题让学生说说为什么不是 0~1500。2223随堂练习(二)提升题 6—10题号题目和选项我的答案6在 1000~1100 里逐个试一遍,循环一共执行多少次?A 100 次 B 101 次 C 1100 次7答案是 1073,它是枚举到第几个数时被试到的?A 73 B 74 C 10738如果把范围写成 1000~1050,会出现什么情况?A 还是找到 1073 B 找不到,答案在范围外 C 找到另一个答案9把范围从 1000~1100 改成 0~1500,要多试多少次?A 多试 1400 次 B 一样多 C 少试 1400 次10枚举法要求“不遗漏、不重复”,指的是什么?A 每个数都试到且只试一次 B 每个数试两遍更保险 C 随便挑几个试小浙提示第 6、8、9 题最容易混,让学生说清怎么算的。2324随堂练习(三)综合题 11—14题号题目和选项我的答案11判断:用枚举法解决问题,范围定得越小越好,哪怕漏掉答案也没关系。A 对 B 错12判断:枚举的范围要按题目条件推算,不能随便定。A 对 B 错13判断:“7 人一排多 2 人”可以写成 x % 7 == 2。A 对 B 错14判断:范围定得越准,程序要试的次数就越少。A 对 B 错小浙提示判断题也要写清理由,重点第 11、13 题。2425参考答案对一对题号1234567答案AABABBB题号891011121314答案BAABAAA讲评要点第 6、7 题:1000~1100 一共 101 个数,循环最多 101 次;1073 是第 74 个被试到的数。第 9 题:0~1500 有 1501 个数,1501 101 = 1400,要多试 1400 次。第 11、12 题:范围要能圈住答案,也要按题目条件推算,不是越小越好。小浙提示重点讲评第 6、7、9、11、12 题。2526课堂小结本课回顾1读题建模1500 名士兵,死伤四五百人 → 剩兵 x 在 1000~1100。2定范围下限 1500 500 = 1000,上限 1500 400 = 1100,共 101 个数。3定条件x % 3 == 2 且 x % 5 == 3 且 x % 7 == 2,用 and 连起来。4逐个试枚举 1000~1100,得到 1073——第 74 个被试到的数。5本课落点范围定得越准,要试的次数就越少。三步做完,还要问一句:才试了几次?小浙提示一句话:范围定得越准,要试的次数就越少。2627关键概念记一记1枚举法按一定范围有顺序地尝试每一种可能,做到不遗漏、不重复。2枚举范围从题目条件推出来:写小了会漏解,写大了要多试很多次。3取余运算x % y 得到 x 除以 y 的余数,例如 5 % 2 = 1。4and意思是“而且”,把几个必须同时满足的条件连起来。先说清要试哪些数,再说清什么样的数才是答案。小浙提示把这四个词抄进笔记本。2728学习评价评一评评价内容自评互评师评能说出枚举法要确定的两件事(枚举范围、正确解的条件)☆☆☆☆☆☆☆☆☆能把“3 人一排多 2 人”写成 x % 3 == 2 这样的式子☆☆☆☆☆☆☆☆☆能说清枚举 1000~1100 要试 101 次,算出 1073 是第 74 个☆☆☆☆☆☆☆☆☆能说出范围定小了会漏解、定大了要多试很多次☆☆☆☆☆☆☆☆☆☆☆☆ 能独立完成并说清理由;☆☆ 需要一点提示;☆ 需要同伴帮助。没到三星的那一项,就是课后的复习重点。小浙提示没到三星的,就是复习重点。2829课后作业分层完成01基础(必做)在 1000~1100 里数一数有几个数,循环最多试几次。02提高(选做)把范围换成 1100~1200 再跑程序,看还能不能找到答案。03拓展(选做)自己编一道“几排多几个”的题,先定范围再写条件。04阅读读《一个一个试,也可以很讲究》。程序和数据都用示例,不写真实同学的姓名和隐私信息。小浙提示程序和数字都用示例,不写真实姓名。2930拓展阅读读一读一个一个试,也可以很讲究一个一个试,听起来笨。可计算机试得又快又准,只要范围写对了,它一个也不会漏。讲究的地方在两个数上:从哪里试起、试到哪里停。这两个数要从题目里算出来。拿韩信点兵来说,死伤四五百人就告诉我们剩兵在 1000~1100,一共 101 个数。范围写小了,答案落在外面,怎么试都找不到;范围写大了,答案没变,可试的次数要多出十几倍。所以用枚举法,先花力气把范围算准——试的时候才省。读后想一想:如果只告诉你“死伤四百多人”,范围该怎么写?小浙提示读后想一想:只告诉你“死伤四百多人”,范围怎么写?30本课结束 谢谢观看课后想一想:你还能把范围缩得更小一些吗?浙教版 小学信息科技 · 六年级上册《“韩信点兵”枚举法的实现》教学设计第二单元 算法的效率 · 第 10 课 · 1 课时(40 分钟) · 配套课件 31 页课题 “韩信点兵”枚举法的实现 教材版本 浙教版六年级上册单元 第二单元 算法的效率 课时 1 课时(40 分钟)执教教师 学校课型 新授课 授课时间一、教材分析《“韩信点兵”枚举法的实现》是浙教版小学信息科技六年级上册第二单元“算法的效率”的第三课,紧接第 9 课《算法的评价方法》。第 9 课立起了那把尺子:问题规模相同时,数一数算法里循环语句执行了几次,次数少的花的时间就短。本课拿这把尺子去量一个新算法——枚举法:面对“韩信点兵”这道古老的求余问题,让计算机在一定的范围里一个一个试,试出答案,再数一数一共试了几次。教材给出的核心内容有四项。一是枚举法:按一定范围有顺序地尝试每一种可能,做到不遗漏、不重复;用它解决问题要确定两件事——枚举的范围和正确解的条件。二是枚举范围怎么来:不能随便定,要从题目条件推算,写小了会漏解,写大了要多试很多次。三是正确解的条件怎么写:用取余运算 x % y 求余数,把“3 人一排多 2 人”写成 x % 3 == 2,三个条件用 and 连起来同时满足。四是程序实现与度量:一个 while 管尝试、一个 if 管判断,本例在 1000~1100 里枚举,得到 1073;1000~1100 一共 101 个数,循环最多执行 101 次,1073 是第 74 个被试到的数。教材的“想一想”问的是范围定得准不准;练习在同样 1500 名士兵的条件下,把“死伤一二百人”改一遍再算一次。二、学情分析六年级学生已经能读懂简单的 Python 程序,学过循环结构与分支结构,第 9 课还亲手给算法算过账,所以本课的难点不在写程序,而在三处转弯。第一处转弯是把“三句话”翻成“三个式子”:学生第一次接触取余运算,“多 2 人”为什么要写成 x % 3 == 2,需要先把手算的例子摆在前面。第二处转弯是范围的推算是反着来的:从“死伤四五百人”推出 1500 500 = 1000 与 1500 400 = 1100,学生容易把上限和下限对应错。第三处转弯是数次数:101 个数里答案排在第几个,学生容易把“试了几次”和“试到的数是几”混在一起。本课的设计要点是“一个例题、一组数据,从头走到尾”。全课只做一件事:把韩信点兵这道题用枚举法实现出来。第一步,把第 9 课那把尺子摆出来,说明这一课要拿它量一个新算法;第二步,读题,把故事读成一道数的问题;第三步,抽象建模——用变量 x 表示剩兵人数,把三句话写成三个式子,从伤亡推出范围;第四步,讲透枚举法三步——定范围、定条件、逐个试;第五步,算准范围(1000~1100,101 个数),讲清取余运算与 and;第六步,把算法写成程序并数次数(最多 101 次,1073 是第 74 个);第七步,用“范围定得准不准”把落点提出来,再辨析六句话;最后收口成一句:范围定得越准,要试的次数就越少。每一段后面紧跟一个动笔的活动:活动一把三句话写成式子并补上范围,活动二跟着程序走一遍枚举过程,活动三换成“死伤一二百人”再算一遍。全课数据统一:原有 1500 名、死伤四五百人、剩兵 1000~1100、答案 1073、第 74 个被试到的数。所有数据和程序都是示例数据,不出现真实的未成年人姓名。三、教学目标信息意识· 知道遇到“一个一个试”的问题时,先要想清楚要试的范围有多大。· 知道计算机试得又快又准,但范围定得不准照样找不到答案,会关心“这个范围是怎么来的”。计算思维· 能说出枚举法要确定的两件事:枚举的范围和正确解的条件。· 能把“3 人一排多 2 人”这样的话写成 x % 3 == 2 这样的式子,并说出为什么要用取余运算。· 能算出范围 1000~1100 一共 101 个数、循环最多执行 101 次,并算出 1073 是第 74 个被试到的数。数字化学习与创新· 能读懂“一个 while 管尝试、一个 if 管判断”的程序,指出哪一段是循环、哪一段是分支。· 会跟着程序走一遍枚举过程,把每个数算出来的余数填进表格验证。信息社会责任· 本课的程序与数据都是示例数据(原有 1500 名、剩兵 1000~1100、答案 1073),不出现真实同学的姓名与隐私信息。· 做判断时愿意说清理由,不凭感觉说“范围越大越好”。四、教学重点与难点教学重点:能说出枚举法要确定的两件事(枚举的范围、正确解的条件),能用自己的话说清“不遗漏、不重复”;能把“3 人一排多 2 人”写成 x % 3 == 2 这样的式子;能算出枚举 1000~1100 要试 101 次,并算出 1073 是第 74 个被试到的数。教学难点:理解枚举范围要从题目条件推算出来,写小了会漏解、写大了要多试很多次;理解取余运算与 and——三个条件必须同时满足,少一个都不是答案。五、教学准备教师:教学课件(31 页)、核心动画(约 5 分钟,带配音)、枚举三步卡片(自制)、范围条与点数教具(自制)、取余运算示例卡(自制)、学生活动任务单、学习评价表。学生:活动任务单、笔、直尺。六、教学方法与学法指导教法:任务驱动法、问题链教学法、演示法、讨论辨析法。以“韩信到底是怎么算出来的”这一个问题贯穿全课,用一道题把枚举法的三步走完。学法:读题复述法、翻译建模法、填表记录法、数数验证法。学生先自己读题,再把三句话翻译成式子,跟着程序走一遍枚举过程,最后数出循环一共试了几次。七、教学过程环节 教师活动 学生活动 设计意图 时间一、承接与导入 不重讲第 9 课的过程,只把工具摆出来:上一课数了循环语句执行几次,比出了算法的好坏;这一课换个新问题,继续用这把尺子。出示课题和本课导航的六站,说明全课只做一道题。 说出上一课那把尺子量的是什么;明确这一课要用它量一个新算法。 一句话接到本课,全课不换情境;先交代路线,学生才知道每一步要往哪走。 3 分钟二、读题:韩信点兵讲的是什么 让学生自己读题,读完全班一起说清三件事:原有 1500 名士兵、死伤四五百人、三种排法报余数。追问“三个余数都对上说明什么”,再抛出本课要解决的问题:该从哪个数试起? 读题并复述三个条件;说出三个余数对上就说明人数试对了。 把故事先读成一道数的问题,后面的建模才有落点;“该从哪个数试起”这一问正好指向枚举范围。 4 分钟三、抽象建模:把故事变成算式 三个动作顺次做:用变量 x 表示剩下的士兵总数;从伤亡推出范围 x 在 1000~1100 之间;把三句话写成三个式子 x % 3 == 2、x % 5 == 3、x % 7 == 2。落一句:故事讲完了,接下来只剩三个式子。 跟着把三句话抄成式子;说出变量 x 在这道题里表示什么。 这是本课的抽象与建模环节:把生活故事压缩成“一个变量 + 三个式子”,是后面写程序的前提。 5 分钟四、核心一:枚举法三步 正面给出枚举法的定义(按一定范围有顺序地尝试每一种可能,做到不遗漏、不重复),按顺序讲三步:定范围、定条件、逐个试,并强调三步里最容易漏的是第一步。 按顺序复述三步;判断“随便挑几个数试试”算不算枚举。 先立方法再动手;“不遗漏、不重复”这条标准,后面辨析第 6 句时直接拿来用。 5 分钟五、核心二:算准范围,写好条件 带全班算范围:下限 1500 500 = 1000,上限 1500 400 = 1100,一共 101 个数。再讲取余运算:x % y 得到 x 除以 y 的余数,跟着算 5 % 2 = 1、7 % 3 = 1、1000 % 3 = 1;把三句话翻成三个式子;用 and 把三个式子连起来,并用 1000 和 1073 各试一遍。随即组织活动一。 算出上下限并数出 101 个数;跟着算三个取余的例子;在任务单活动一里把三句话写成式子、把范围补齐。 本课的两个硬骨头都在这一环节——范围怎么算、条件怎么写。用具体数字试一遍,学生才明白“第一个式子对不上就跳过”是什么意思。 8 分钟六、核心三:逐个试、写成程序、数次数 把范围与条件合起来,读四步框架(起步、判断还在范围里吗、判断三个条件、试下一个),指出②④是循环结构、③是套在里面的分支结构;逐行读五行的程序,说清运行结果 1073。再用上一课的尺子数账:范围内 101 个数、最多试 101 次,1073 是第 74 个被试到的数,一找到就停下来只要 74 次。随即组织活动二。 在任务单上把循环的两步圈出来;逐行读程序;在活动二里填出 1000、1001、1073 三个数算出的余数。 算法框架和程序是一回事,读两遍是为了让“循环套分支”看得见;数次数把第 9 课那把尺子用在了新算法上。 7 分钟七、想一想与辨一辨 把难题摆出来:同一个问题,范围写成 1000~1050 只试 51 次却找不到答案,写成 0~1500 要试 1501 次白试太多,写成 1000~1100 试 101 次就找到。再念辨一辨的六句话,重点问第 4、6 句;最后议一议“还能怎么试得更少”。随即组织活动三。 比较三个范围的得失,自己说一句结论;判断题写清理由;在活动三上把“死伤一二百人”那道题自己填一遍。 本课的价值点在这里——范围不是越大越好,也不是越小越好,要刚好把答案圈住;活动三换数据不换方法,检验方法是不是真的学会了。 4 分钟八、练习、小结与评价 交代 14 题分三层(基础 1—5、提升 6—10、综合 11—14)与讲评重点(第 6、7、9、11、12 题);对答案后顺着板书理一遍:读题建模 → 定范围 → 定条件 → 逐个试 → 数次数。核对学习评价表,布置分层作业,预告下一课筛选法。 独立完成基础题,提升题与综合题同桌互查;对答案后订正;照着板书复述三步;完成自评,记下没到三星的那一项。 用练习检验两件事是否落地:会不会算范围、会不会写条件。整课收口成一句话——范围定得越准,要试的次数就越少。 4 分钟八、板书设计“韩信点兵”枚举法的实现枚举法:按一定范围有顺序地尝试每一种可能,做到不遗漏、不重复枚举三步:定范围 → 定条件 → 逐个试(顺序不能颠倒)定范围:1500 500 = 1000;1500 400 = 1100 → 1000~1100,共 101 个数定条件:x % 3 == 2 and x % 5 == 3 and x % 7 == 2(多几人就是余几)逐个试:从 1000 试到 1100,答案 1073——第 74 个被试到的数程序(示例,5 行):x = 1000while x < 1101:if x % 3 == 2 and x % 5 == 3 and x % 7 == 2:print("剩余的士兵数为:", x)x = x + 1运行结果:剩余的士兵数为:1073本课落点:范围定得越准,要试的次数就越少。一句话:先把范围圈准,再让计算机一个一个试。九、作业设计(分层)基础题(必做):在任务单“认一认”里把空补完整;再把 1000~1100 里一共有几个数、循环最多试几次写清楚,并说出 1073 是第几个被试到的数。提高题(选做):把范围换成 1100~1200,再跑一遍程序,看看还能不能找到答案,想一想为什么。拓展题(选做):自己编一道“几排多几个”的题,先定范围,再写条件,最后用枚举法把答案算出来。阅读任务:读《一个一个试,也可以很讲究》,想一想如果题目只告诉你“死伤四百多人”,范围该怎么写。作业要求:程序和数据都用示例,标明“示例数据”;不出现真实同学的姓名和隐私信息。任务单练习参考答案:题号 1 2 3 4 5 6 7答案 A A B A B B B题号 8 9 10 11 12 13 14答案 B A A B A A A讲评要点:第 6、7 题说清 1000~1100 一共 101 个数、循环最多执行 101 次,1073 是第 74 个被试到的数;第 9 题把两个范围的差算出来——0~1500 有 1501 个数,1501 101 = 1400,要多试 1400 次;第 11、12 题是本课的价值落点——范围既不能定小(会漏解),也不能不管条件随便定,要刚好把答案圈住。活动二里学生最容易填错的是 1001 那一行(%3 余 2、%5 余 1、%7 余 0),讲评时把“第一个式子对不上就跳过”再说一遍。十、学习评价说明本课采用自评、互评、师评相结合的方式,评价维度包括:能否说出枚举法要确定的两件事(枚举范围、正确解的条件);能否把“3 人一排多 2 人”写成 x % 3 == 2 这样的式子;能否说清枚举 1000~1100 要试 101 次、并算出 1073 是第 74 个被试到的数;能否说出范围定小了会漏解、定大了要多试很多次。星级标准:☆☆☆ 能独立完成并说清理由;☆☆ 需要一点提示;☆ 需要同伴帮助。十一、教学反思(课后对照以下问题填写)· 学生能不能自己从“死伤四五百人”推出 1000~1100,而不是等老师给范围?· 讲取余运算时,有没有学生把“x % 3 的商”和“余数”搞混?· 写条件时,有多少学生把“多 3 人”写成了 == 2 或漏了 and?· 数次数时,有多少学生把“试到 1073”说成“试了 1073 次”?· 活动三里,学生能不能自己把“死伤一二百人”换成 1300~1400?· 辨析第 4 句时,有没有学生仍然认为“反正在计算机里试得很快”,范围越大越保险?本课纠正过来了吗?· 落点句“范围定得越准,要试的次数就越少”,学生能不能用自己的话说一遍?浙教版小学信息科技六年级上册 · 第 10 课《“韩信点兵”枚举法的实现》学习任务单班级:__________ 姓名:__________ 日期:__________本单的士兵人数(1500 名)、余数、枚举范围和循环次数都是示例数据;请你也只写示例,不出现真实同学的姓名。认一认 认识枚举法要确定的两件事先填一填:这一课的几个关键点,能自己写出来才算听懂。要认清的 我填用枚举法解决问题,要先确定两件事:______和______。枚举法:按一定范围有顺序地尝试每一种可能,做到不___、不___。枚举范围要从题目条件推算:写小了会____,写大了会____。取余运算 x % y 得到的是 x 除以 y 的____。“3 人一排多 2 人”写成式子:____________。三个条件要同时满足,中间用____连接。1500 500 = ___,1500 400 = ___,所以剩兵在___~___之间。1000~1100 一共___个数,循环最多执行___次。枚举 1000~1100 得到答案____,它是第___个被试到的数。本课落点:范围定得越___,要试的次数就越___。我的疑问:________________________ 。活动一 把故事写成条件韩信让士兵换三种排法,报出三个余数。请把这三句话翻译成式子,再把范围补上。范围不能顺手写,要从“死伤四五百人”算出来。题目里的话 写成式子3 人一排多 2 人 x % 3 == 25 人一排多 3 人7 人一排多 2 人死伤四五百人 x 的范围:______ ~ ______范围是怎么来的:1500 500 = ___,1500 400 = ___,所以剩兵 x 在 ______ ~ ______ 之间。活动二 走一遍枚举过程照着程序往下走:每试一个数,就算出它除以 3、5、7 的余数,看看三个余数是不是都对上了。试到第几次 试哪个数 x % 3 x % 5 x % 7 是不是答案第 1 次 1000第 2 次 1001第 74 次 1073填完想一想:1073 前面那 73 个数,为什么都不是答案?____________________________。活动三 改一个题再算一遍还是 1500 名士兵,只把“死伤四五百人”改成“死伤一二百人”,三句话的余数也换一换。三步还是那三步,先自己填一遍。要做的 先自己填一填 对一对(填完后看)范围 x 在 ______ ~ ______ 1500 200 = 1300;1500 100 = 1400条件 ________________ x % 3 == 1、x % 5 == 4、x % 7 == 3答案 枚举 1300~1400,得到 ______ 1354,是第 55 个被试到的数比一比:范围还是 101 个数,试的次数没变,可答案换了。我的发现:__________________。辨一辨 下面说法对不对先判断对错,再写清理由。理由比结论更重要。说法 对 / 错 我的理由枚举的范围要从题目条件里推算出来。“7 人一排多 2 人”可以写成 x % 7 == 2。三个条件同时满足,中间用 and 连接。枚举的范围定得越大越好,反正在计算机里试得很快。用枚举法时,范围里的每个数都要试到,不能漏。枚举法找到答案靠运气,碰巧试到了才对。练一练 随堂练习基础题 1—5 全班必做;提升题 6—10、综合题 11—14 同桌互查。拿不准的题,回到“范围要圈住答案”上想。题号 题目 我的答案1 原有 1500 名士兵,死伤四五百人,剩兵 x 的范围应该定在哪里?A 1000~1100 B 1300~1400 C 0~15002 用枚举法解决问题,第一步要做的是什么?A 确定枚举的范围 B 给变量取个短名字 C 程序写得越短越好3 在 Python 里,x % 3 表示什么?A x 除以 3 的商 B x 除以 3 的余数 C x 乘 34 “5 人一排多 3 人”,用式子表示是哪一个?A x % 5 == 3 B x / 5 == 3 C x % 3 == 55 三个条件要同时满足,式子之间用什么连接?A 逗号 B and C 分号6 在 1000~1100 里逐个试一遍,循环一共执行多少次?A 100 次 B 101 次 C 1100 次7 答案是 1073,它是枚举到第几个数时被试到的?A 73 B 74 C 10738 如果把范围写成 1000~1050,会出现什么情况?A 还是找到 1073 B 找不到,答案在范围外 C 找到另一个答案9 把范围从 1000~1100 改成 0~1500,要多试多少次?A 多试 1400 次 B 一样多 C 少试 1400 次10 枚举法要求“不遗漏、不重复”,指的是什么?A 每个数都试到且只试一次 B 每个数试两遍更保险 C 随便挑几个试11 判断:用枚举法解决问题,范围定得越小越好,哪怕漏掉答案也没关系。A 对 B 错12 判断:枚举的范围要按题目条件推算,不能随便定。A 对 B 错13 判断:“7 人一排多 2 人”可以写成 x % 7 == 2。A 对 B 错14 判断:范围定得越准,程序要试的次数就越少。A 对 B 错评一评 学习评价在对应的星级上打钩,三星表示做得很好。没到三星的那一项,就是课后的复习重点。评价内容 自评 互评 师评能说出枚举法要确定的两件事(枚举范围、正确解的条件) ☆☆☆ ☆☆☆ ☆☆☆能把“3 人一排多 2 人”写成 x % 3 == 2 这样的式子 ☆☆☆ ☆☆☆ ☆☆☆能说清枚举 1000~1100 要试 101 次,算出 1073 是第 74 个 ☆☆☆ ☆☆☆ ☆☆☆能说出范围定小了会漏解、定大了要多试很多次 ☆☆☆ ☆☆☆ ☆☆☆课后作业1. 基础(必做):把上面“认一认”的空补完整;再把 1000~1100 里一共有几个数、循环最多试几次写清楚,并说出 1073 是第几个被试到的数。2. 提高(选做):把范围换成 1100~1200,再跑一遍程序,看看还能不能找到答案,想一想为什么。3. 拓展(选做):自己编一道“几排多几个”的题,先定范围,再写条件,最后用枚举法把答案算出来。4. 阅读:读一读《一个一个试,也可以很讲究》,想一想如果题目只告诉你“死伤四百多人”,范围该怎么写。5. 提醒:程序和数据都要标明“示例数据”,不出现真实同学的姓名和隐私信息。我的记录区(可以把范围是怎么算出来的、或者自己想到的更省的办法写在这里):____________________________________________________________________________________________________________________________________________________________________________________ 展开更多...... 收起↑ 资源列表 第10课_“韩信点兵”枚举法的实现_学习任务单.docx 第10课_“韩信点兵”枚举法的实现_教案.docx 第10课_“韩信点兵”枚举法的实现_核心动画.mp4 第10课_“韩信点兵”枚举法的实现_课件.pptx