一,原问题,经典兔子繁殖问题。
数学家Leonardoda Fibonacci提出的兔子繁殖问题:
有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少对?
由此推出了著名的fibonacci数列。
递推公式为,F(n)=F(n-1)+F(n-2),n>=3。F(1)=F(2)=1;
还有通项公式,以及黄金分割等的讨论,请参考其他资料。
一句话理解此递推公式:
F(n)是当前月的兔子对数目,等于上个月已有的兔子对数(F(n-1)个),再加上新出生的兔子对数目(F(n-2))。上上个月的兔子对是F(n-2),每对兔子生一对新的兔子,所以新出生的兔子对为F(n-2)。
根据此公式,可以用循环、递归和dp三种方法来实现兔子的计数。
程序在最后给出,本文先将注意力放在问题改进上。
二,去掉“兔子不死”的假设。
我们很容易i注意到原兔子繁殖问题中有个很强的假设,就是“所有兔子都不死”,而实际的兔子是有