Fibonacci数列

Fibonacci数列,

一个让了解它的人无数次称赞它的神奇并且让人深深着迷的数列

一个让不了解它的人无数次惊叹它的规律并且让人倍感呵呵的数列

一、公式

1、递推公式:f[i]=f[i-1]+f[i-2]

2、通项公式:

(一个完全是自然数的数列的通项公式却是用无理数表达的=w=)

 

二、优美的神奇的性质

1、与黄金分割

如果做过黄金分割的题的童鞋来讲,即使你不知道黄金分割与Fibonacci有什么关系但是你可以在考试中通过以下两种方法得出正解:

(1)你知道通式和黄金分割的表达式,然后你会抱着试一试的心态发现果然如此

(2)对于fibonacci除了递推式什么都不知道,用暴力在一定范围内打表找规律输出的时候,也会发现分子、分母的规律

 

当然,本来就知道它们之间关系的直接AC就可以=。=

那么,什么关系呢0.0?

n趋向于无穷大时,前一项与后一项的比值越来越逼近黄金分割

同样,我们有两种方法得以证明:

(1)严谨的数学推导,证明它们的极限是黄金分割比

 证明:f[n+2]=f[n+1]+f[n]

      F[n+2]/f[n+1]=1+f[n]/f[n+1]

     假设f[n]/f[n+1]存在极限x(x>0)

     n趋近于无穷时原式可化为:1/x=1+x

             x^2+x-1=0

所以x即为黄金分割比

证毕=w=

(2)暴力(优雅)而又正确的枚举打表找规律法,注意精度,(其实通过前几十个数应该就能发现规律了,再用计算器验证一下发现——完美!)

 

2、平方与前后项

1 1 2 3 5  8  13  21 34 55 89

1 1 4 9 25 64 169 441

So~

 

1)1+1=2

     1+4=5

     4+9=13

     9+25=34

     25+64=89

......

所以

n项与第n+1项的平方和等于第(2*n+1)项 0.0

(2)那如果不是平方和而是乘积并且是m和n呢0.0

来,咱们随意一些=w=

F[3+4]=13= 1*3+2*5  =f[2]*f[4]+f[3]*f[5]

F[3+5]=21= 1*5+2*8  =f[2]*f[5]+f[3]*f[6]

F[2+7]=34= 1*13+1*21=f[1]*f[7]+f[2]*f[8]

......

   F[m+n]=F[m-1]F[n]+F[m]F[n+1]
   证明:
   F[n+m]=F[n+m-1]+F[n+m-2]
         =2*F[n+m-2]+F[n+m-3]

         =……
  F[n+m]=a[x]*F[n+m-x]+b[x]*F[n+m-x-1];
        =a[x]*(F[n+m-x-1]+F[n+m-x-2])+b[x]*(F[n+m-x-1);
        =(a[x]+b[x])*F[n+m+x-1]+a[x]*F[n+m+x-2];
  x=1时有 a[1]=F[2];  

   b[1]=F[1];
  x=2时有 a[2]=F[2]+F[1]=F[3];  

   b[2]=a[1]=F[2];
 x=k+1时有 a[k+1]=a[k]+b[k]=F[k+1]+F[k]=F[k+2] 

  b[k+1]=a[k]=F[k+1];
 所以当x=n时
  F[n+m]=a[n]F[m]+b[n]F[m-1];
        =F[n+1]F[m]+F[n]F[m-1];

=w=

3)从第二项开始:

      1^2=1=1*2-1;

      2^2=4=1*3+1;

      3^2=9=2*5-1;

      5^2=25=3*8+1;

......

所以

     F[n]^2=f[n-1]*f[n+1]+1 (n为奇数)

           =f[n-1]*f[n+1]-1 (n为偶数)

4)奇数项求和

5)偶数项求和

6)二倍项关系

     1/1=0+1=1

     3/1=1+2=3

     8/2=1+3=4

......

所以

F[2*n]/f[n]=f[n+1]+f[n-1]

7)gcd关系

   Gcd(1,1)=1

   Gcd(1,2)=1

   Gcd(2,3)=1

   Gcd(3,5)=1

......

   Gcd(f[n],f[n+1])=1

这个可以通过枚举验证也可以通过数学证明=w=

证明:

Gcd(F[n+1],F[n])=Gcd(F[n+1]-F[n],F[n])
                    =Gcd(F[n],F[n-1])
                    ......

                    =Gcd(F[2],F[1])

                    =1



8)Gcd(F[n+m],F[n])=Gcd(F[n],F[m])
证明:
Gcd(F[n+m],F[n])

由(2)可得
=Gcd(F[n+1]F[m]+F[n]F[m-1],F[n]);
=Gcd(F[n+1]F[m],F[n]);
=Gcd(F[n+1],F[n])*Gcd(F[m],F[n])
=Gcd(F[m],F[n]);

所以,最关键的:Gcd(F[n],F[m])=F[Gcd(n,m)];

(由(2)(7)(8)可得=w=,

当然,如果在考试上遇到的话打表法可以瞬间看出规律=w=,

我在考试中就是用15分钟打了个表,然后3分钟分析出结论,然后...然后...发现矩阵乘法+快速幂优化Fibonacci不会了QAQ,生生的变成了40分QAQ)

 

 

 

裸的Fibonacci,即求fibonacci中第几项的问题已经不是问题而是基础题中的模板题,包括递归和矩阵乘法两种方式,并且Fibonacci数列能出的题目有很多,但是又几乎不会告诉你“我考的是Fibonacci”,有的题目,对于了解它的性质的人来讲,就是“它考的是Fibonacci

但是,大部分题目和对于大部分不太了解或者只是听说过一些性质的人,打表找规律也能找出隐藏的Fibonacci数列=w=

 

当然,如果你能坚持的看到这里的话,你会看到下面我给的总结=w=

1.记住Fibonacci与黄金分割比的关系=w=

2.剩下的现场暴力打表找规律=w=

很有可能一道题的答案你并不知道它所隐含了多么神奇的数列或规律,所以暴力打表法是一个相当不错的选择,尤其是对于我这种数学渣==

                     ——by Eirlys

转载请注明出处=w=



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值