Fibonacci数列(用此数列可以解决兔子生娃的问题)

1202年,义大利数学家斐波那契出版了他的「算盘全书」。他在书中提出了一个关于兔子繁殖的问题: 如果一对兔子每月能生一对小兔(一雄一雌),而每对小兔在牠出生后的第三个月里,又能开始生一对小兔,假定在不发生死亡的情况下,由一对出生的小兔开始,50个月后会有
多少对兔子?

 

有个题是说10个月后有多少只兔子?

在第一个月时,只有一对小兔子,过了一个月,那对兔子成熟了,在第三个月时便生下一对小兔子,这时有两对兔子。再过多一个月,成熟的兔子再生一对小兔子,而另一对小兔子长大,有三对小兔子。如此推算下去,我们便发现一个规律:

 

时间(月)
初生兔子(对)
成熟兔子(对)
兔子总数(对)
1
1
0
1
2
0
1
1
3
1
1
2
4
1
2
3
5
2
3
5
6
3
5
8
7
5
8
13
8
8
13
21
9
13
21
34
10
21
34
55

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

由此可知,从第一个月开始以后每个月的兔子总数是:
1,1,2,3,5,8,13,21,34,55,89,144,233…

若把上述数列继续写下去,得到的数列便称为斐波那契数列。
数列中每个数便是前两个数之和,而数列的最初两个数都是1。
若设 F0=1, F1=1, F2=2, F3=3, F4=5, F5=8, F6=13...
则:当n>1时,Fn+2 = Fn+1 + Fn,而 F0=F1=1
下面是一个古怪的式子:

 

Fn 看似是无理数,但当 n ≧0 时,Fn 都是整数  

利用斐波那契数列来做出一个新的数列:
方法是把数列中相邻的数字相除,以组成新的数列如下:

 

当 n 无限大时,数列的极限是:

      

这个数值称为黄金分割比,它正好是方程式 x2+x-1=0 的一个根。

 

 

 

 

 

以上的都是参考的,下面来一段关于这个Fibonacci的Java代码:

public class Fibonacci
{
     public static void main(String args[])
     {
      int i;
      int f[]=new int[10];
      f[0]=f[1]=1;
      for(i=2;i<10;i++)
       f[i]=f[i-1]+f[i-2];
      for(i=1;i<=10;i++)
       System.out.println("F["+i+"]="+f[i-1]);
     }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章