内容正文:
高一—教科版—信息技术—第四单元
4.2 数值计算(第二课时)
学习目标
☆ 感受数据的图形化表示;
☆ 设计迭代方程,进行数值计算,解决问题;
☆ 了解数值类算法在实际问题解决时的应用及常用方法。
斐波那契—兔子问题
创设情境:
裴波那契在《计算之书》中提到关于兔子问题,每个月的兔子对数是前两个月兔子对数之和,同时又作为下一个月兔子对数的加数。
兔子问题—分析
分析一:
小兔子需要一个月的成长时间。
分析二:
第3个月开始,兔子对数是前两月对数之和。
兔子问题—表格计算
成熟
?
任务一:
用电子表格计算,一对兔子24个月后,会繁殖成多少对?
兔子问题—表格计算
兔子问题—算法分析
任务二:
兔子的对数只跟前两个月兔子对数有关,f1记录上上月数据,f2记录上月数据,
f3记录当月数据,将3个变量分别填写在左图对应的区域。
③
(f1)
①
②
(f2)
(f3)
兔子问题—算法分析
③
(f1)
①
②
(f2)
(f3)
任务三:
分析左图变量之间的关系,尝试写出完成一次迭代计算所需要的计算表达式。
兔子问题—算法分析
③
(f1)
①
②
(f2)
(f3)
f1=f2 f2=f3
完成一次迭代计算的表达式: f3=f1+f2 #计算当月兔子对数
#上月在下轮变成上上月
#当月在下轮变成上月
兔子问题—迭代算法
迭代算法:
也称为辗转法,通常用于接近并到达所需的目标或结果,每一次对过程的重复被称为一次“迭代”,而每次迭代得到的结果会被用来作为下一次迭代的初始值。
兔子问题—组装流程图
任务四:
组装“兔子问题”迭代函数的流程图,将字母序号填入左边对应位置。
D:函数输出返回值给主程序
A:设置迭代计算的条件
B:进行一次迭代计算
C:给第1、第2个月赋予初值
开始
获取参数
C
A
B
D
结束
否
是
兔子问题—编写程序
?
def fib(n): #定义函数求第n个月兔子的对数
f1=1 #第1月兔子对数初值
f2=1 #第2月兔子对数初值
for i in range (3, ): #3个月开始循环迭代计算
= ?
=?
f3 f1 f2
=?
?
#计算当前月兔子数量保存到f3
#上月f2对数赋值给上上月f1
#当月f3对数赋值给上月f2
#函数返回f3的值给主程序
?
n=int(input”输入需要计算的月份数:”)#输入月数
print(