生兔子与斐波那契数列

一对兔子在出生2个月之后,每个月能生出一对小兔子。现有一对刚出生的兔子,如果所有兔子都不死,那么一年后,一共有多少对兔子?

这个题目一拿到就有点懵,如果不是提前告诉你斐波那契数列,没人会往那上面想,然后会觉得很头大,找不到思路。

当知道了递推公式后,仔细去想一下,觉得道理其实也就是那么明显。

num(month)=num(month-1)+num(month-2)

逻辑很容易去想,每个月的兔子的总数是等于已经存在的兔子加上新出生的兔子。

已经存在的兔子是多少,那就是num(month-1),上个月兔子的总数,到了这个月,都变成已存在的了。

新出生的兔子是多少呢,那要知道已存在的兔子里面,有多少满2个月,才可以生出相等数量的小兔子。

那多少满了2个月呢,那当然是上上个月就已经存在的了,过了2个月到了这个月,就可以生兔子了。

那这个数字,就是num(month-2)。

斐波那契数列是个挺有意思的现象,据说在生物学方面也有很多应用,很多生物的繁殖规律,就是类似斐波那契数列的。

如果这里兔子每过一个月就可以生兔子的话,那答案就简单多了,1,2,4,8。。。

想象一下,如果过3个月才能生呢,那类似的公式就是

num(month)=num(month-1)+num(month-3)

这样一个公式,给出初始值,也足以算出任意一个月的兔子数量了。

你可能感兴趣的:(生兔子与斐波那契数列)