一对兔子在出生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)
这样一个公式,给出初始值,也足以算出任意一个月的兔子数量了。
网友评论