zoukankan      html  css  js  c++  java
  • 数据结构——斐波拉契序列——小兔问题

    一对幼兔一个月后长成小兔(每对兔子默认一公一母),再过一个月长成成兔并且生下一对小兔,以此类推,两年后有多少对兔子?

    数列是由13世纪意大利斐波那契提出的,1,1,2,3,5,8,13,21…… 
    这个数列从第三项开始,每一项都等于前两项之和
    递推关系决定: F0=0,F1=1 ,Fn+2=Fn + Fn+1(n>=0) 
    通项公式为:[(1+√5)/2]^n /√5 - [(1-√5)/2]^n /√5 【√5表示根号5】
    main()
    {
        printf("输入月:");
        int a;
        scanf("%d",&a);
        int chengtu = 0;                               //定义成兔
        int xiaotu = 0;                                //定义小兔
        int youtu = 0;                                 //定义幼兔
        int he = 0;                                    //计算兔子的总和
        for (int i = 1; i <= 1 * a;i++ )
        {
            if (i == 1)
            {
                chengtu = 0;
                xiaotu = 0;
                youtu = 1;
            }
            else
            {
                chengtu = chengtu + xiaotu;            //这个月的成兔=上个月的成兔+上个月的小兔
                xiaotu = youtu;                        //这个月的小兔=上个月的幼兔
                youtu = chengtu;                       //这个月的幼兔=上个月的成兔
                he = chengtu + xiaotu + youtu;
            }
        }
        printf("幼兔: %d 、小兔: %d 、成兔: %d 、总和:%d 
    ",youtu, xiaotu, chengtu, he);
    }
    该数列有很多奇妙的属性 
    1. 随着数列项数的增加,前一项与后一项之比越逼近黄金分割0.6180339887……
    2. 这样一个完全是自然数的数列,通项公式居然是用无理数来表达的。
    3. 从第二项开始,每个奇数项的平方都比前后两项之积多1,每个偶数项的平方都比前后两项之积少1 。如果任意挑两个数为起始,比如5、-2.4,然后两项两项地相加下去,
    形成5、-2.4、2.6、0.2、2.8、3、5.8、8.8、14.6……等,你将发现随着数列的发展,前后两项之比也越来越逼近黄金分割,且某一项的平方与前后两项之积的差值也交替相差某个值
    4. 如果你看到有这样一个题目:某人把一个8*8的方格切成四块,拼成一个5*13的长方形,故作惊讶地问你:为什么64=65?其实就是利用了菲波那契数列的这个性质:5、8、13正是数列中相邻的三项,事实上前后两块的面积确实差1,只不过后面那个图中有一条细长的狭缝,一般人不容易注意到 

    http://www.cnblogs.com/hqjy/p/4027451.html
  • 相关阅读:
    build tools
    文档系统总结
    各进制及其转换详解
    JQuery 函数执行顺序
    计算页面宽高的函数
    Linq中的多表左联,详细语句
    css设置滚动条颜色与样式以及如何去掉与隐藏滚动条
    基于JQUERY写的 LISTBOX 选择器
    js/jquery 实时监听输入框值变化的完美方案:oninput & onpropertychange
    JQuery select控件的相关操作
  • 原文地址:https://www.cnblogs.com/qq1129496211/p/4045032.html
Copyright © 2011-2022 走看看