何俊毅
摘 要: 文章介紹了斐波那契數(shù)列及其意義、價值和應用場景,分析了其7種編程實現(xiàn)方式:遞歸方式、數(shù)組方式、vector
關鍵詞: 斐波那契數(shù)列; 編程; 遞歸; 數(shù)組; 迭代
中圖分類號:TP312 文獻標志碼:A 文章編號:1006-8228(2017)02-52-03
0 引言
斐波那契數(shù)列[1]是意大利數(shù)學家列昂納多·斐波那契發(fā)明的,我們在生活中經(jīng)常能看到斐波那契數(shù),比如松果、鳳梨、樹葉的排列、向日葵花朵的花瓣數(shù)、蜂巢、蜻蜓翅膀、黃金分割、等角螺線、十二平均律等。
斐波那契數(shù)列又稱為黃金分割數(shù)列,指的是這樣一個數(shù)列:1,1,2,3,5,8,13,21,34,……,數(shù)列從第3項開始,每一項都等于前兩項之和。
斐波納契數(shù)列以遞歸的方法定義。
F(1)=1,F(xiàn)(n)=F(n-1)+F(n-2) (n≥2,n∈N*)
n趨向于無窮大時,前一項與后一項的比值越來越逼近黃金分割0.618。
斐波那契數(shù)列在各方面存在許多實際的應用價值,黃金分割、楊輝三角、質(zhì)數(shù)數(shù)量、尾數(shù)循環(huán)、自然界中各現(xiàn)象[2-3]。
斐波那契數(shù)列在軟件開發(fā)中可應用于以下方面。
⑴ 解決網(wǎng)絡程序中通訊意外斷開后的重連延遲時間計算(例如QQ等通訊軟件掉線后的自動重連功能,頻繁重試連接會造成不必要的資源消耗,重試延遲便通過斐波那契數(shù)列實現(xiàn),避免資源的不必要消耗)。
⑵ 應用于數(shù)學建模。
⑶ 應用于股票曲線值預測、周期值預測分析。
⑷ 計算飼養(yǎng)繁殖數(shù)量等。
1 斐波那契數(shù)列的編程實現(xiàn)及比較分析
為了更好地將斐波那契數(shù)列運用到微機計算中,本文對計算機編程語言的斐波那契數(shù)列編程方法進行了分析。
斐波那契數(shù)列可以通過多種編程方式實現(xiàn),包括遞歸、數(shù)組、vector
代碼結(jié)構:
使用遞歸方式其解法最為簡單,但遞歸過程中存在大量的重復計算,效率慢,以及深度遞歸會消耗大量的??臻g,一般會在計算到較大數(shù)值時(F(100)),程序崩潰。
迭代的另一種實現(xiàn)方式,通過不同的變量命名來實現(xiàn),不易理解,其他效果與迭代相同。
2 結(jié)果驗證
嘗試測試輸入:5
輸出:1 1 2 3 5
嘗試測試輸入:10
輸出:1 1 2 3 5 8 13 21 34 55
通過代碼的實現(xiàn)情況可知,迭代方式是最適用于斐波那契數(shù)列輸出的編程方式,該編程方法可用于多種數(shù)模建立、產(chǎn)品設計、限值預測等軟件開發(fā)。可更好地利用斐波那契數(shù)列來方便人們的生活。
3 結(jié)束語
通過對斐波那契數(shù)列的研究和編程實現(xiàn),我們初步掌握了斐波那契解數(shù)列的規(guī)律和編程方法,可以看出迭代方式是目前實現(xiàn)斐波那契數(shù)列的較好方式。斐波那契數(shù)列的應用非常廣泛,與自然、生活、科學都有著緊密的聯(lián)系。它具有的數(shù)學之美讓我們著迷,從數(shù)學之美到編程之美,還需要我們更加深入的研究和探索,找到更加優(yōu)化的方法。更好的應用斐波那契解數(shù)列解決自然界中的問題,對于我們有著非?,F(xiàn)實的意義。
參考文獻(References):
[1] 凌曉牧.有趣的斐波那契數(shù)列[J].江蘇教育學院學報(自然科
學版),2011.28(10):31-33
[2] 賈菲菲.斐波那契數(shù)列的研究與應用[J].科技創(chuàng)新與應用,
2014.4(5):53
[3] 閆萍.斐波那契多項式與斐波那契數(shù)列[J].常熟理工學院學
報,2005.17(3):15-20