zoukankan      html  css  js  c++  java
  • 斐波那契数列的应用

    众所周知非常著名的斐波那契数列1,1,2,3,5,8,13,21.....

    看一个题目:一对新生的兔子,第一个月无生殖能力,满两个月之后(即第三个月开始)每月都能生一对兔子,问n个月后,共有多少兔子?

    解析:n=1时,有 1 只兔子

             n=2时,仍然只有 1 只兔子,不过这一对兔子具有了生殖能力,开始怀胎,第三个月一开始就能生了。。。

             n=3时,就有 2 只兔子,

             n=4时,就有 3 只兔子

             n=5时,就有 5 只兔子

            ...显而易见,这与斐波那契数列是完全对应的,实际上斐波那契数列就是这么来的吧。。。

    道理很简单,但是怎么去正确的理解就是个问题了。。。

    举个例子吧,假设,n的取值是从1月份到2月份。。。

    那么可以看到,1月份就只有一只兔子,...四月份就有3只兔子,五月份有5只兔子,6月份有8只兔子,那这8只兔子可以怎么去推算呢,当然多种方式,最好的方式是:

    在五月份有5只的基础上,又有多少对兔子生了多少只,加上就可以了,关键是搞清楚多少只兔子可以生,可以很清楚地理解到,就是4月份所有的兔子(共3只)都可以

    生,加上5月份的5只得出六月份的8只,就是这么算的。。。

    从而我们可以退出,第n个月,n>2

    f(n)=f(n-1)+f(n-2)  (n>2);

    f(1)=1;

    f(2)=1;

    Fight fight fight ! 你有你的奇迹 ! Fight fight fight ! Just to be yourself !
  • 相关阅读:
    遇到的两个问题
    项目分析(map复习)
    while小问题
    二级指针
    映射文件实现进程通信
    struct {0}初始化
    用boost共享内存实现进程通信的例子
    mongo二维数组操作
    项目分析(channelid是如果产生的)
    string为什么可以写入共享内存
  • 原文地址:https://www.cnblogs.com/sjlove/p/3163512.html
Copyright © 2011-2022 走看看