内容正文:
1.2数据的计算:
鸡兔同笼问题多路径求解
必修1 数据与计算
襄阳市第二十四中学 龚程程
1
出处https://www.bilibili.com/video/BV1eY411x749/?share_source=copy_web&vd_source=051df09e2924a34ff2f15f0a76ce0d51
学习目标
学习探究
任务实施
课堂总结
学习目标
根据问题和数据规模,选择合适的计算工具(如人工计算、Excel、编程)
复习巩固算法的相关基础知识
能独立编写Python顺序结构程序求解鸡兔同笼问题,并通过 if 条件语句验证输入数据有效性
通过将鸡兔同笼问题抽象为数学模型并编程实现,理解‘分析问题-设计算法-编写程序-调试’的计算思维过程
项目导入
“今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?”
项目导入
学习探究
任务实施
课堂总结
提出问题
《孙子算经》中有这样一题:“今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?”
【思考与讨论】
你有哪些解法?
如何用现代计算思维来求解?
学习目标
5
方法一:人工计算
方程法
假设法
抬脚法
……
枚举法
项目导入
学习探究
任务实施
课堂总结
学习目标
6
兔的只数(94-35×2)÷2=12(只)
鸡的只数35-12=23(只)
方法一:人工计算
假设法
抬脚法
让笼中的兔、鸡同时抬起两只脚,
那么笼子里现在只剩下兔子的两只脚,再÷2就是兔子数
兔的只数(94-35×2)÷2=12
鸡的只数 35-12=23
假设这35个头都是兔子,则腿数为35×4=140,所以多的腿数÷2就是鸡数。
鸡的只数
(35×4-94)÷(4-2)=23
兔的只数 35-23=12
项目导入
学习探究
任务实施
课堂总结
学习目标
7
项目导入
学习探究
任务实施
课堂总结
学习目标
方法一:人工计算
每次计算结果是否都准确?
有没有更高效,直观的方法?
【思考】
该用什么办法求解更快更准?
8
方法二:利用EXCEL表格求解
【知识回顾】
求和函数:
数据的筛选
项目导入
学习探究
任务实施
课堂总结
学习目标
SUM()
使用方法:=SUM(A1+B1+......)
筛选不会改变数据,取消筛选后所有数据都会重新出现
9
方法二:利用EXCEL表格求解
鸡兔同笼问题(137头520只脚)
兔的只数 鸡的只数 兔脚总数 鸡脚总数 共有的脚数
1
2
……
【思考与实践】
请同学们打开鸡兔同笼问题-表格.xlsx
填写表格内容完成“137头520只脚”问题求解
项目导入
学习探究
任务实施
课堂总结
学习目标
10
方法二:利用EXCEL表格求解
项目导入
学习探究
任务实施
课堂总结
学习目标
1000000头 3590790只脚??
每次修改总只数/总脚数都要重新下拉列表???
如果需要同时解决100个不同的鸡兔问题呢?
【思考】
该用什么办法求解可以实现自动化计算呢?
11
方法三:python程序求解
【知识回顾】
变量:在程序运行过程中值允许改变的量称为变量
运算符:
乘法* 除法/ 整除 //
算法的3大基本结构:顺序结构、分支结构、循环结构
项目导入
学习探究
任务实施
课堂总结
学习目标
12
方法三:python程序求解
【知识回顾】
函数:
print( ) 在Python中,使用“print()”在屏幕上输出数据
input( ) 从键盘输入数据,需注意数据类型为字符串类型
int( ) 根据一个字符串或浮点数创建一个新的整数。
项目导入
学习探究
任务实施
课堂总结
学习目标
13
方法三:python程序求解
分析问题-设计算法
【思考与讨论】
需要定义多少个变量?如何表示呢?
使用什么结构?(顺序结构?循环结构?)
项目导入
学习探究
任务实施
课堂总结
学习目标
14
方法三:python程序求解
【讨论】如何用数学符号表示问题?
项目导入
学习探究
任务实施
课堂总结
学习目标
假设法:
设鸡x只,兔y只
先假设笼中全部都是鸡,那么:
笼中剩下的脚数:legs-2heads
可得y=(legs-2x)÷2
x=heads-y
用变量chickens表示x
用变量rabbits表示y
则可得变量rabbits的表达式:
rabbits=(legs-2*chickens) /2
chickens=heads-rabbits
数学问题 ==》抽象为编程思维
15
方法三:python程序求解-顺序结构
优化
分析问题-设计算法-编写程序
heads =int(input(“请输入总头数:”))
legs = int(input(“请输入总脚数:”))
tu = (legs - heads * 2) / 2
print("兔子的数量为:",tu)
print("鸡的数量为:",heads-tu)
【思考与讨论】
这段代码有需要改进的地方吗?
项目导入
学习探究
任务实施
课堂总结
学习目标
提示:
输入的有效性问题
2. 计算出来的兔子数量tu是否为整数?
16
方法三:python程序求解-顺序结构-优化后代码
分析问题-设计算法-编写程序-调试运行
heads = 35
legs = 94
tu = (legs - heads * 2) / 2
if tu ==int(tu) and tu>=0 and tu<heads:
print("兔子的数量为:",tu)
print("鸡的数量为:",heads - tu)
else:
print(“该组合无解”)
项目导入
学习探究
任务实施
课堂总结
学习目标
17
方法三:python程序求解-循环语句
【知识回顾】
循环语句:使用for语句 或 while 语句 来创建循环
for 循环变量 in range()函数:
循环体
使用场景:循环次数一定
项目导入
学习探究
任务实施
课堂总结
学习目标
18
方法三:python程序求解
【知识回顾】
while 关系表达式:
循环体
项目导入
学习探究
任务实施
课堂总结
学习目标
使用场景:循环次数未知,
关系表达式成立时执行循环体
19
方法三:python程序求解-循环结构
分析问题-设计算法-编写程序-调试运行-检验结果
项目导入
学习探究
任务实施
课堂总结
学习目标
【小组合作】
打开“鸡兔同笼.py” 根据教师讲解的代码示例,补充完成代码并调试运行
20
方法三:python程序求解-循环结构
分析问题-设计算法-编写程序
heads =int(input("请输入头的数量"))
legs = int(input("请输入脚的数量"))
for chickens in range(0,①):# i表示兔子的数量
rabbits = heads- chickens
if chickens * 2 + rabbits * 4 ② legs:
print(f"鸡的数量为:{chickens},兔的数量为:{rabbits}")
break
③:
print("无解")
项目导入
学习探究
任务实施
课堂总结
学习目标
21
对比三种路径求解
项目导入
学习探究
任务实施
课堂总结
学习目标
【小组合作】
组内选定1位同学为出题人,其他同学分别选择(每个角色至少有1人):
角色1:“古代数学家”:人工计算
角色2:“数据分析师”:用Excel求解
角色3:“程序员”:用程序求解
22
对比三种路径求解
项目导入
学习探究
任务实施
课堂总结
学习目标
【小组合作】
比比看谁的速度更快,并完成如下表格
23
三种路径对比
项目导入
学习探究
任务实施
课堂总结
学习目标
使用成本 使用方法 计算速度 其他
人工计算 低 很方便 慢 适合计算量少的情况下
电子表格 高于人工 比较方便 高于人工 适合计算量有限的情况下
编程计算 高于人工
方便
但要求有编程计算基础 快 适合计算过程复杂,量大的情况下使用
24
项目评价:自评与互评
项目导入
学习探究
任务实施
课堂总结
学习目标
25
项目成果展示与交流
项目导入
学习探究
任务实施
课堂总结
学习目标
各小组推选一名代表,向全班展示本小组的项目成果。
展示内容包括:
程序运行和结果
项目实施过程中遇到的困难和问题,以及如何解决的?
26
同学们,算筹会朽,Excel版本会更新,Python语法会迭代...但贯穿千年的,是这份用数学语言描述世界的勇气
小结
项目导入
学习探究
任务实施
课堂总结
学习目标
同学们,算筹会朽,Excel版本会更新,Python语法会迭代,但贯穿千年的,是人类不断探索、不断思考创新的进取精神!希望大家在今后的学习和生活中,能够继续运用这些思维方式和工具,去解决更多的实际问题。同时,保持对信息技术的热情,不断探索和创新,用所学的知识创造更多的价值。
27
作业
项目导入
学习探究
任务实施
课堂总结
学习目标
1、消化理解本节课所有代码,自己独立编写并运行成功
2、我国古代数学家张丘建在《算经》一书中提出的数学问题:“鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?”请用本节所学的方法对该问题求解。
28
Lavf58.20.100
$