Python斐波拉契数列
1 ''' 2 4. 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后 3 每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 4 # 兔子的规律为数列1,1,2,3,5,8,13,21.... 5 ''' 6 a, b = 0, 1 7 # moon = int(input("请输入月数")) 8 moon = 5 9 for moon in range(moon): 10 print("第{0}个月兔子总数有{1}对".format(moon+1, b)) 11 a, b = b, a + b
这个例子介绍了几个新特征。
第一行包含了一个复合赋值:变量 a 和 b 同时得到新值 0 和 1。最后一行再次使用了同样的方法,
可以看到,右边的表达式会在赋值变动之前执行。右边表达式的执行顺序是从左往右的。
1. 斐波那契数列 概念引入
斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”。
数学上,斐波那契数列以递归的形式进行定义:
场景
先来开看看“兔子数列”以及其他数学应用场景!!
1. 1 兔子数列
一般而言,兔子在出生两个月后,就有繁殖能力,一对兔子每个月能生出一对小兔子来。如果所有兔子都不死,那么一年以后可以繁殖多少对兔子?
2.1 兔子繁殖问题
斐波那契数列又因数学家列昂纳多·斐波那契以兔子繁殖为例子而引入,故又称为“兔子数列”。
一般而言,兔子在出生两个月后,就有繁殖能力,一对兔子每个月能生出一对小兔子来。如果所有兔子都不死,那么一年以后可以繁殖多少对兔子?
我们不妨拿新出生的一对小兔子分析一下:
第一个月小兔子没有繁殖能力,所以还是一对
两个月后,生下一对小兔对数共有两对
三个月以后,老兔子又生下一对,因为小兔子还没有繁殖能力,所以一共是三对
-----------------------------------------------------------------------------------------------------------
依次类推可以列出下表: