资源简介 (共26张PPT)义务教育信息科技(2024)五年级 第1课时第六单元 快速遍历数据五年级下册第21课 鸡兔同笼巧计算单元导入通过枚举遍历所有数据是一种简单直接的数据查找方法。单元导入本单元的遍历主要指将问题所有可能的数据都通过枚举法查找出来。在枚举过程中,检查每个结果是否是当前问题的正确答案。如果是,则问题解决完成;如果不是,则继续枚举,直到所有可能的数据都被访问和检查完成。单元导入在进行归纳推理时,如果逐个考查了某类事件的所有可能情况后得出一般性结论,那么该结论通常是可靠和稳定的。遍历是一种访问数据、处理数据的方法,在算法实现中,可以用于搜索、排序、过滤等操作。12了解鸡兔同笼问题的求解方法,能通过表格列出数量变化,发现其中的规律。感受遍历法的应用,能看懂鸡兔同笼问题的算法流程图,了解算法与程序的对应关系。学习目标第21课 课堂导入我国古代典籍《孙子算经》中记载了许多有趣的问题,其中就有“鸡兔同笼”问题。书中是这样描述的:“今有鸡兔同笼,上有三十五头,下有九十四足,问鸡兔各几何 ”意思是:有若干只鸡和兔关在同一个笼子里。从上面数,有35个头。从下面数,有94只脚。这个笼子里的鸡和兔各有多少只 一起用算法来求解这道题吧!经典趣题第21课 学习活动一 用数学算式求解鸡兔同笼问题三 编程验证鸡兔同笼问题二 用枚举法求解鸡兔同笼问题学习活动一、用数学算式求解鸡兔同笼问题为了便于理解,我们先把原问题的数量减少为:今有鸡兔同笼,上有6头,下有18足,问鸡兔各几何?缩小问题规模第21课 学习活动方法1:假设6只全部是兔。 如果全部是兔,那么6只兔一共有24只脚,实际上只有18只脚,于是需要减少6只脚,即24 – 18 = 6。这样,自然就是3只兔和3只鸡。减少6只脚鸡:(6×4 – 18)÷2 = 3(只) 兔:6 – 3 = 3(只)一、用数学算式求解鸡兔同笼问题解法分析第21课 学习活动方法2:假设6只全部是鸡 如果全部是鸡,那么一共有6×2 = 12只脚,实际上有18只脚,于是少了6只脚,即18 – 12 = 6。需要把6只脚添加上,自然就是3只兔和3只鸡。兔:(18 – 6×2)÷2 = 3(只) 鸡:6 – 3 = 3(只)一、用数学算式求解鸡兔同笼问题解法分析第21课 学习活动方法1:假设全部是兔。 鸡:( 35×4 – 94)÷2 = 23(只)兔: 35 – 23 = 12(只) 方法总结:鸡的数量 =(总头数×4 – 总脚数)÷ 2一、用数学算式求解鸡兔同笼问题还原问题规模第21课 学习活动今有鸡兔同笼,上有三十五头,下有九十四足,问鸡兔各几何?方法2:假设全部是鸡。兔:(94–35×2)÷2 = 12(只)鸡:35–12 = 23(只) 方法总结:兔的数量 =(总脚数–总头数×2)÷ 2一、用数学算式求解鸡兔同笼问题第21课 学习活动还原问题规模1.先假设35只都是鸡,算出脚的数量。2.如果数量不符合,则减一只鸡、增加一只兔,再计算脚的数量。3.如此循环遍历,直到找到正确的鸡和兔数量,即23只鸡和12只兔。枚举遍历数据二、用枚举法求解鸡兔同笼问题第21课 学习活动鸡 35 34 33 32 31 30 29 28 27 26 25 24 23兔 0 1 2 3 4 5 6 7 8 9 10 11 12脚 70 72 74 76 78 80 82 84 86 88 90 92 94列表显示数据变化过程第21课 学习活动二、用枚举法求解鸡兔同笼问题 第1步:初始化鸡的数量“a = 35”和兔的数量“b = 0”。 第2步:计算脚的数量“c = a×2 + b×4”。 第3步:把脚的数量与94进行比较。如果不相等,将鸡的数量减1,将兔的数量加1,并回到第2步继续循环;如果相等,则输出当前鸡的数量和兔的数量,结束循环。算法描述第21课 学习活动二、用枚举法求解鸡兔同笼问题算法描述第21课 学习活动二、用枚举法求解鸡兔同笼问题流程图描述。 如果先假设35只都是兔,用枚举法遍历相应数求解时,应该对算法进行哪些调整?进一步思考第21课 学习活动二、用枚举法求解鸡兔同笼问题 以上用枚举法求解问题时,每一步都简单而且相似,让人来做显得笨拙单调。但计算机不怕重复、单调,而且它的计算速度非常快。这样的方法正好适合用循环结构来实现。 第21课 学习活动方法分析三、编程验证鸡兔同笼问题 要编程解决鸡兔同笼问题,较简单的方法就是:利用循环结构对鸡和兔的数量逐个遍历,即先假设兔的数量为0,通过不断增加兔的数量和减少鸡的数量,来逐步逼近正确答案。第21课 学习活动运行程序a = 35b = 0while True:c = a*2+b*4if c == 94:print('鸡的数量:', a)print('兔的数量:', b)breakelse:a = a-1b = b+1三、编程验证鸡兔同笼问题#设置鸡数量的初始值a#设置兔数量的初始值b#用循环结构进行控制#计算脚的数量#比较c的值是否等于94#输出获得的结果#结束循环#鸡的数量减少1只#兔的数量增加1只第21课 学习活动程序分析程序用while True语句构成一个无限循环,表示循环体内的代码会不断地重复执行,直到循环体内出现某种能够终止循环的指令,这里使用了break语句来终止循环。利用if……else……语句作为判断脚的数量是否等于94的条件。如果相等,就输出正确答案并通过break语句退出循环。否则,将鸡的数量减少1只,兔的数量增加1只,继续循环。==是比较运算符“等于” ,c==94表示判断变量c的值是否等于94。三、编程验证鸡兔同笼问题计算机解题的过程与人解题过程存在很多差异。很多时候,人与计算机往往用不同方法解决问题。对于人来说比较简单的方法,对于计算机可能难以实现。同样的,对计算机来说比较简单的方法,人很可能无法完成。我们用计算机解决问题时,要充分考虑计算机的运算特点。第21课 学习活动三、编程验证鸡兔同笼问题方法总结1.解决一个计算问题时,可以用自己学过的数学方法来求解,也可以依据运算规则设计算法来让计算机求解。2.枚举法是将问题的所有可能都逐个进行列举。在列举的过程中,遍历每个数据是否是问题的正确答案。如果是,则问题解决完成;如果不是,则继续列举,直到所有可能都被查看。第21课 课堂总结第21课 拓展与提升 1.韩信是我国历史上很有领兵能力的一名将领。在民间流传着这样的一个故事。 那么,在知道了这三次布阵的结果后,韩信是如何算出到底有多少名士兵呢?如何设计算法让计算机来找出这个数? 有一次,汉军统帅韩信带1 500名勇士与楚军交战,战死四五百人。为了再战,韩信快速地清点了人数,他要求3人一排站队,结果多出2人;5人一排站队,多出4人;7人一排站队,又多出6人。韩信马上宣布,我军有1 049名勇士。汉军本来就信服韩信,这一来更相信他有神机妙算。于是士气大振,一鼓作气,击败楚军。2.在一千多年前的《孙子算经》中,也记录着这样一道算术题:今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何?用现代汉语描述这道题就是:现有一些不知道数量的物品,3个一组数剩余2个,5个一组数剩余3个,7个一组数剩余2个,这些物品的数量是多少?尝试描述求解这个问题的算法,找到100至1 000之间符合条件的物品数量。第21课 拓展与提升下课啦! 展开更多...... 收起↑ 资源预览