導航:首頁 > 源碼編譯 > 斐波那契數列演算法

斐波那契數列演算法

發布時間:2022-02-16 06:42:40

A. 斐波那契數列怎麼算

它的通項公式是 Fn=1/根號5{[(1+根號5)/2]的n次方-[(1-根號5)/2]的n次方}(n屬於正整數)
並不是所有的數列都可以求。
但是Fibanocci數列是可以求通項公式的。
a(n+2)=a(n+1)+an
如果能做到:
a(n+2)-ka(n+1)=q(a(n+1)-kan)就好辦了。
這應該沒問題的,待定系數求k,q
斐波那契數列指的是這樣一個數列:1,1,2,3,5,8,13,21,34……
這個數列從第三項開始,每一項都等於前兩項之和。它的通項公式為:(1/√5)*{[(1+√5)/2]^n - [(1-√5)/2]^n}
通項是兩個等比數通項之差.
求和公式就是兩個等比數列求和公式之差

B. 小於一百的斐波那契數的演算法

即斐波那契數列,「斐波那契數列」的發明者,是義大利數學家列昂納多·斐波那契(Leonardo Fibonacci,生於公元1170年,卒於1240年。籍貫大概是比薩)。他被人稱作「比薩的列昂納多」。1202年,他撰寫了《珠算原理》(Liber Abaci)一書。他是第一個研究了印度和阿拉伯數學理論的歐洲人。他的父親被比薩的一家商業團體聘任為外交領事,派駐地點相當於今日的阿爾及利亞地區,列昂納多因此得以在一個阿拉伯老師的指導下研究數學。他還曾在埃及、敘利亞、希臘、西西里和普羅旺斯研究數學。
斐波那契數列指的是這樣一個數列:1,1,2,3,5,8,13,21……
這個數列從第三項開始,每一項都等於前兩項之和。它的通項公式為:(1/√5)*{[(1+√5)/2]^n - [(1-√5)/2]^n}【√5表示根號5】
很有趣的是:這樣一個完全是自然數的數列,通項公式居然是用無理數來表達的。

【該數列有很多奇妙的屬性】
比如:隨著數列項數的增加,前一項與後一項之比越逼近黃金分割0.6180339887……
還有一項性質,從第二項開始,每個奇數項的平方都比前後兩項之積多1,每個偶數項的平方都比前後兩項之積少1。
如果你看到有這樣一個題目:某人把一個8*8的方格切成四塊,拼成一個5*13的長方形,故作驚訝地問你:為什麼64=65?其實就是利用了斐波那契數列的這個性質:5、8、13正是數列中相鄰的三項,事實上前後兩塊的面積確實差1,只不過後面那個圖中有一條細長的狹縫,一般人不容易注意到。
如果任意挑兩個數為起始,比如5、-2.4,然後兩項兩項地相加下去,形成5、-2.4、2.6、0.2、2.8、3、5.8、8.8、14.6……等,你將發現隨著數列的發展,前後兩項之比也越來越逼近黃金分割,且某一項的平方與前後兩項之積的差值也交替相差某個值。
斐波那契數列的第n項同時也代表了集合{1,2,...,n}中所有不包含相鄰正整數的子集個數。

【斐波那契數列別名】
斐波那契數列又因數學家列昂納多·斐波那契以兔子繁殖為例子而引入,故又稱為「兔子數列」。
斐波那契數列
一般而言,兔子在出生兩個月後,就有繁殖能力,一對兔子每個月能生出一對小兔子來。如果所有兔都不死,那麼一年以後可以繁殖多少對兔子?
我們不妨拿新出生的一對小兔子分析一下:
第一個月小兔子沒有繁殖能力,所以還是一對;
兩個月後,生下一對小兔民數共有兩對;
三個月以後,老兔子又生下一對,因為小兔子還沒有繁殖能力,所以一共是三對;
------
依次類推可以列出下表:
經過月數:0123456789101112
兔子對數:1123581321345589144233
表中數字1,1,2,3,5,8---構成了一個數列。這個數列有關十分明顯的特點,那是:前面相鄰兩項之和,構成了後一項。
這個數列是義大利中世紀數學家斐波那契在<算盤全書>中提出的,這個級數的通項公式,除了具有a(n+2)=an+a(n+1)/的性質外,還可以證明通項公式為:an=1/√[(1+√5/2) n-(1-√5/2) n](n=1,2,3.....)

【斐波那挈數列通項公式的推導】

斐波那契數列:1,1,2,3,5,8,13,21……
如果設F(n)為該數列的第n項(n∈N+)。那麼這句話可以寫成如下形式:
F(1)=F(2)=1,F(n)=F(n-1)+F(n-2) (n≥3)
顯然這是一個線性遞推數列。

通項公式的推導方法一:利用特徵方程
線性遞推數列的特徵方程為:
X^2=X+1
解得
X1=(1+√5)/2, X2=(1-√5)/2.
則F(n)=C1*X1^n + C2*X2^n
∵F(1)=F(2)=1
∴C1*X1 + C2*X2
C1*X1^2 + C2*X2^2
解得C1=1/√5,C2=-1/√5
∴F(n)=(1/√5)*{[(1+√5)/2]^n - [(1-√5)/2]^n}【√5表示根號5】
通項公式的推導方法二:普通方法
設常數r,s
使得F(n)-r*F(n-1)=s*[F(n-1)-r*F(n-2)]
則r+s=1, -rs=1
n≥3時,有
F(n)-r*F(n-1)=s*[F(n-1)-r*F(n-2)]
F(n-1)-r*F(n-2)=s*[F(n-2)-r*F(n-3)]
F(n-2)-r*F(n-3)=s*[F(n-3)-r*F(n-4)]
……
F(3)-r*F(2)=s*[F(2)-r*F(1)]
將以上n-2個式子相乘,得:
F(n)-r*F(n-1)=[s^(n-2)]*[F(2)-r*F(1)]
∵s=1-r,F(1)=F(2)=1
上式可化簡得:
F(n)=s^(n-1)+r*F(n-1)
那麼:
F(n)=s^(n-1)+r*F(n-1)
= s^(n-1) + r*s^(n-2) + r^2*F(n-2)
= s^(n-1) + r*s^(n-2) + r^2*s^(n-3) + r^3*F(n-3)
……
= s^(n-1) + r*s^(n-2) + r^2*s^(n-3) +……+ r^(n-2)*s + r^(n-1)*F(1)
= s^(n-1) + r*s^(n-2) + r^2*s^(n-3) +……+ r^(n-2)*s + r^(n-1)
(這是一個以s^(n-1)為首項、以r^(n-1)為末項、r/s為公差的等比數列的各項的和)
=[s^(n-1)-r^(n-1)*r/s]/(1-r/s)
=(s^n - r^n)/(s-r)
r+s=1, -rs=1的一解為 s=(1+√5)/2, r=(1-√5)/2
則F(n)=(1/√5)*{[(1+√5)/2]^n - [(1-√5)/2]^n}

C. 什麼是斐波那契數列

斐波那契數列數列從第3項開始,每一項都等於前兩項之和。

例子:數列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368........

應用:

生活斐波那契

斐波那契數列中的斐波那契數會經常出現在我們的眼前——比如松果、鳳梨、樹葉的排列、某些花朵的花瓣數(典型的有向日葵花瓣),蜂巢,蜻蜓翅膀,超越數e(可以推出更多),黃金矩形、黃金分割、等角螺線,十二平均律等。

斐波那契數與植物花瓣3………………………

百合和蝴蝶花5……………………

藍花耬斗菜、金鳳花、飛燕草、毛茛花8………………………

翠雀花13………………………

金盞和玫瑰21……………………

紫宛34、55、89……………雛菊

斐波那契數還可以在植物的葉、枝、莖等排列中發現。例如,在樹木的枝幹上選一片葉子,記其為數0,然後依序點數葉子(假定沒有折損),直到到達與那些葉子正對的位置,則其間的葉子數多半是斐波那契數。葉子從一個位置到達下一個正對的位置稱為一個循回。

葉子在一個循回中旋轉的圈數也是斐波那契數。在一個循回中葉子數與葉子旋轉圈數的比稱為葉序(源自希臘詞,意即葉子的排列)比。多數的葉序比呈現為斐波那契數的比。

黃金分割

隨著數列項數的增加,前一項與後一項之比越來越逼近黃金分割的數值0.6180339887..…

(3)斐波那契數列演算法擴展閱讀:

性質:

平方與前後項

從第二項開始,每個奇數項的平方都比前後兩項之積少1,每個偶數項的平方都比前後兩項之積多1。

如:第二項1的平方比它的前一項1和它的後一項2的積2少1,第三項2的平方比它的前一項1和它的後一項3的積3多1。

(註:奇數項和偶數項是指項數的奇偶,而並不是指數列的數字本身的奇偶,比如從數列第二項1開始數,第4項5是奇數,但它是偶數項,如果認為5是奇數項,那就誤解題意,怎麼都說不通)

證明經計算可得:[f(n)]^2-f(n-1)f(n+1)=(-1)^(n-1)

發明者:

斐波那契數列的發明者,是義大利數學家列昂納多·斐波那契(Leonardo Fibonacci),生於公元1170年,卒於1250年,籍貫是比薩。他被人稱作「比薩的列昂納多」。1202年,他撰寫了《算盤全書》(Liber Abacci)一書。

他是第一個研究了印度和阿拉伯數學理論的歐洲人。他的父親被比薩的一家商業團體聘任為外交領事,派駐地點相當於今日的阿爾及利亞地區,列昂納多因此得以在一個阿拉伯老師的指導下研究數學。他還曾在埃及、敘利亞、希臘、西西里和普羅旺斯等地研究數學。

D. 斐波那契數列演算法

Private Function f(ByVal n As Integer) As Double'斐波那契的n項的值
Dim r As Double
If n = 0 Then
r = 0
End If
If n = 1 Then
r = 1
End If
If n > 1 Then
r = f(n - 1) + f(n - 2)
End If
f = r
End Function

E. 斐波那契數列遞歸演算法是什麼

斐波那契數列遞歸演算法是斐波那契數列的一種演算法,又稱為黃金分割數列,其演算法規律為F(n)=F(n-1)+F(n-2)。

由於是以兔子的繁殖為例子引入的,因此也叫「兔子數列」。它指的是這樣一個數列:0、1、1、2、3、5、8、13……,從這組數可以很明顯看出這樣一個規律:從第三個數開始,後邊一個數一定是在其之前兩個數的和。

(5)斐波那契數列演算法擴展閱讀:

斐波那契數列遞歸的原理:

1、每一級的函數調用都有自己的變數。

2、每一級函數調用都會有一次返回。

3、遞歸函數中,位於遞歸調用前的語句和各級調用函數具有相同的執行順序。

4、遞歸函數中,位於遞歸調用後的語句和各級調用函數具有相反的執行順序。

5、雖然每一級遞歸都有自己的變數,但是函數代碼並不會得到復制。

F. 斐波那契數列怎麼計算

遞歸法:

F(1)=0,F(2)=1,F(n)=F(n-1)+F(n-2)(n≥3,n∈N)


公式法:

G. 斐波那契數列演算法的源程序

代碼如下。。。我測試過了。。。

public class Fibonacci {

/**
* 計算Fibonacci數列,使用遞歸
* @param n 計算第n個Fibonacci數列值
* @return 第n個Fibonacci數值
*/
public static int fibonacci(int n){
if(n<=1)
return n;
else
return fibonacci(n-1) + fibonacci(n-2);
}

public static void main(String[] args) {
for(int i = 0;i<=5;i++)
System.out.print(fibonacci(i)+",");
}

}

希望對你有幫助。。。。仍有問題可以HI我。。。

H. 2、什麼是斐波那契數列,怎麼計算連續10個斐波那契數的和

斐波那契數列是後一項=前面兩項相加,即:
f(3)=f(1)+f(2)

I. 斐波那契數列,第二十個數的演算法。(用循環語句)

java">//斐波那契數列
List<Integer>list=newArrayList<>();
inta=1,b=2,n=20;
list.add(a);
list.add(b);
//An=A(n-1)+A(n-2)
for(inti=0;i<20;i++){
list.add(list.get(i)+list.get(i+1));
}
//輸出
System.out.println(list.get(n-1));

J. 斐波那契數列的演算法,vb

Dim st As String = ""
Dim a(100)
a(1) = 0 : a(2) = 1
For i = 3 To 100
a(i) = a(i - 2) + a(i - 1)
Next i

For i = 1 To 10
st = st & a(i) & " "
If i Mod 10 = 0 Then st = st & vbCrLf
Next i
TextBox6.Text = st

Public Function f(ByVal n As Integer) As Integer
Dim res As Integer
If n = 1 Or n = 2 Then
res = 1
End If
If n = 3 Then
res = 2
End If
If n > 3 Then
res = f(n - 1) + f(n - 2)
End If
Return res
End Function

閱讀全文

與斐波那契數列演算法相關的資料

熱點內容
linux彈出光碟命令 瀏覽:258
java加密jar包防止反編譯 瀏覽:397
redhatlinux安裝mysql 瀏覽:691
怎麼把word和ppt放在一個文件夾 瀏覽:139
pdf優化器 瀏覽:131
剪力牆柱鋼筋搭接需要加密嗎 瀏覽:873
螢石雲加密視頻怎麼播放 瀏覽:983
winar如何壓縮內存佔小 瀏覽:727
哪裡有大的解壓軟體 瀏覽:583
一個雲伺服器如何放多個網站 瀏覽:324
圓柱體重計演算法 瀏覽:232
谷歌伺服器解析地址 瀏覽:701
應屆畢業生程序員實習期怎麼過 瀏覽:707
板石樓梯計演算法 瀏覽:436
swift開發pdf 瀏覽:293
ideajava編譯版本 瀏覽:964
邁普交換機常用命令 瀏覽:180
刪除創建的文件夾命令 瀏覽:183
linuxmysql連接拒絕連接 瀏覽:823
php關鍵詞源碼 瀏覽:832