内容正文:
第6单元 快速遍历数据
兔子增长有规律(2)
第23课
人教版·五年级
学习目标
01
课堂导入
02
新知探究
03
知识总结
04
智慧挑战
05
兴趣园地
06
目录
CONTENTS
2
PART 1
学习目标
进一步了解兔子增长的数据递增规律,能够
用流程图描述相应的算法。
学习目标
能够利用程序验证兔子增长问题的算法,体
会算法与程序的对应关系。
PART 2
课堂导入
课堂导入
这一课继续探究“兔子增长问题”,通过用流程图描述算法,并用程序进行验证,感受用算法解决问题的基本过程。
兔子增长问题
PART 3
新知探求
新知探究
学习活动1
活动1:用流程图描述兔子增长算法
新知探究
“兔子增长问题”算法描述:
第 1 步:F[1] 和 F[2] 的初始值都设为 1
#1月和2月的兔数量
第 2 步:用循环变量n表示月份,初始值设为 3
#从3月开始计算
第 3 步:建立以下循环结构:
(1)如果n <=12,就进入循环;
F[n] = F[n-1] + F[n-2]
即 F[3] = F[2]+F[1],F[4] = F[3]+F[2],
F[5] =F[4]+F[3]……
(2)将n加 1,继续循环。
第 4 步:当n >12 时,结束循环。
第 5 步:输出 F[12] 的值。
学习活动1 用流程图描述兔子增长算法
补充流程图
1
1
3
12
n+1
F[12]
讨论
新知探究
学习活动1 用流程图描述兔子增长算法
斐波那契数列算法思想
意大利数学家莱昂纳多·斐波那契(LeonardoFibonacci)在其1202年所著的《计算之书》中,提出了有趣的兔子增长问题。
书中这样描述:一般而言,兔子在出生两个月之后,就会有繁殖能力,一对大兔每个月能生出一对小兔。如果所有的兔都活着,那么一年以后共有多少对兔?
斐波那契数列指的是这样一组数:1、1、2、3、5、8、13、21、34、55、89……这组数从第3个数开始,每一个数都等于前两个数之和。
这个数列因以兔子的繁殖增长为例子而引入,故被称为兔子数列。
新知探究
学习活动2
活动2:用程序验证兔子增长算法
新知探究
Python的列表从第0项开始,因此这里先把第0项设为0,第1个月、第2个月兔的数量分别设为1,并从第3个月开始计算,直到第12个月。
学习活动2 用程序验证兔子增长算法
F = [0,1,1] #把1月、2月兔的数量放入列表,第0项设为0
n = 3 #设置要计算的起始月份
while n <= 12: #如果月份数n小于等于12,就进入循环
F= F + [0] #为列表增加一项,默认值为0
F[n] = F[n-1] + F[n-2] #计算当前月份兔的数量
n = n+1 #月份数增加1,继续计算
print(' 第 12 个月兔的数量是:', F[12]) # 输出计算结果
打开参考程序,观察、运行,分析程序与算法的对应关系。
表示为名为 F 的列表增加一项,默认值为 0, 用于存储将要计算月份兔的数量。
新知探究
小知识
学习活动2 用程序验证兔子增长算法
编程错误
类型
一般指运行时因硬件故障、非正常操作等产生的错误。例如,程序正要读取一个文件,而这个文件被删除了,就会报错。
运行错误
通常指输入的代码不符合语法规定。例如,while语句、if语句等后面没有加冒号,程序中的单引号、双引号、冒号、括号等输入了中文符号。
语法错误
逻辑错误
有些程序表面上看起来运行正常,但就是得不到正确结果,这种情况往往是程序存在逻辑错误。逻辑错误一般是因为结构设计疏忽或失误产生的,算法与程序设计越复杂,产生逻辑错误的可能性就越大,修改起来也就越困难。
PART 4
知识总结
知识总结
用流程图描述兔子增长算法
把自然语言描述的算法转化为流程图
实践探究
递推算法
用程序验证兔子增长算法
使用 Python 的列表来实现
PART 5
智慧挑战
2.兔子增长问题(斐波那契数列)的求解算法,是通过已知的前两个月的值,一步一步地计算出后面每一个月的值。这种“从已知起点,根据规律逐步推导出后续所有结果”的方法,被称为:
A. 遍历法
B. 递推算法
C. 递归算法
D. 分治算法
1.在经典的兔子增长问题(斐波那契数列)中,假设第一个月有1对小兔子,第二个月有1对,从第三个月开始,每月的兔子对数等于前两个月兔子对数之和。那么,要计算第6个月的兔子对数,我们需要知道:
A. 第5个月的兔子对数
B. 第4个月和第5个月的兔子对数
C. 第1个月的兔子对数
D. 前一个月的兔子对数
智慧挑战
智慧挑战
解析:这个问题的规律是“当前值等于前两个值之和”。要计算第6个月的数量,必须知道前面的两个月,即第4个月和第5个月的兔子对数。
答案:B
解析:递推算法正是从初始条件出发,根据一个确定的递推关系式,像“滚雪球”一样,依次计算出后续的每一个结果。
答案:B
PART 6
兴趣园地
兴趣园地
有一只兔子在玩跳台阶,一次可以跳 1 级或者 2 级台阶,现在总共有 8 级台阶,兔子跳完这些台阶,有多少种不同的跳法?
兔子跳台阶程序实现
运行程序
补充流程图
1
2
3
n+1
兴趣园地
斐波那契数列存在于许多自然现象之中。
例如,有些树木的生长,由于新生的枝条往往需要一段休息时间,供自身生长,而后才能萌发新枝。所以一株树苗会在间隔一段时间后长出一条新枝。第二年新枝休息,老枝依旧萌发。此后,老枝与休息过一段时间的新枝同时萌发,当年生的新枝则次年休息。这样,一株树木各个年份的枝干数,就会构成斐波那契数列。
又如,一些植物的种子排列也符合斐波那契螺旋,向日葵的种子排列形成的斐波那契螺旋有时能达到 89 个。这些植物按照自然规律进化成这样,这似乎是植物排列种子的优化方式。它能使所有种子具有差不多的大小却又疏密得当,不至于在中心处挤了太多的种子。
自然界中斐波那契数列的独特现象
兴趣园地
观察生活环境中的花草、树木,发现更多符合斐波那契数列的现象。如梅花、飞燕草、菊花、百合花、蝴蝶兰等植物,它们的花瓣数目也具有斐波那契数列特征。叶子的生长方式也是如此。许多植物的叶子从枝干生长出来时,为了在生长的过程中最佳地利用空间和保障每片叶子都获得阳光照射,叶子之间会形成一个“黄金角度”。
自然界中斐波那契数列的独特现象
这种现象的原因与植物生长的优化有关。 研究表明,相邻器官原基之间的夹角接近黄金角(约137.5度),这种排列方式能使种子或花瓣的分布效率最高,从而在进化中被保留下来。
然而,并非所有植物都严格遵循这一规律,有些花朵的花瓣数可能因变异或人工培育而偏离斐波那契数,但总体而言,这种模式在植物界中相当普遍。
梅花:通常有5个花瓣,属于斐波那契数列中的数。
飞燕草:花瓣数常见为8个,符合数列。
菊花:作为菊科植物,花瓣数常为34、55或89,这些数字均出现在数列中。
百合花:通常有3个花瓣(或6个,但实际为两套3个),对应数列。
蝴蝶兰:花瓣数一般为5个,符合斐波那契规律。
谢谢
下节课见!
Thanks!
人教版·五年级
$