美文网首页
生兔子与斐波那契数列

生兔子与斐波那契数列

作者: 正直的东东哥 | 来源:发表于2018-09-20 10:54 被阅读0次

    一对兔子在出生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)

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

    相关文章

      网友评论

          本文标题:生兔子与斐波那契数列

          本文链接:https://www.haomeiwen.com/subject/abugnftx.html