版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
一句話先答復(fù)下列問題:因?yàn)殪巢瞧鯏?shù)列在數(shù)學(xué)和生活以及自然界中都非常有用。
下面我就盡我所能,講述一下斐波那契數(shù)列。
一、起源和定義
斐波那契數(shù)列最早被提出是印度數(shù)學(xué)家Gopala,他在研究箱子包裝物件長度恰好為1和2時(shí)的方法數(shù)時(shí)首先描述了這個(gè)數(shù)列。也就是這個(gè)問題:
有n個(gè)臺(tái)階,你每次只能跨一階或兩階,上樓有幾種方法?
而最早研究這個(gè)數(shù)列的當(dāng)然就是斐波那契〔LeonardoFibonacci〕了,他當(dāng)時(shí)是為了描述如下情況的兔子生長數(shù)目:
第一個(gè)月初有一對(duì)剛誕生的兔子第二個(gè)月之后〔第三個(gè)月初〕它們可以生育每月每對(duì)可生育的兔子會(huì)誕生下一對(duì)新兔子兔子永不死去
這個(gè)數(shù)列出自他赫赫有名的大作《計(jì)算之書》〔沒有維基詞條,坑〕,后來就被廣泛的應(yīng)用于各種場(chǎng)合了。這個(gè)數(shù)列是這么定義的:
TheOn-LineEncyclopediaofIntegerSequences?(OEIS?)序號(hào)為A000045-OEIS
〔注意,并非滿足第三條的都是斐波那契數(shù)列,盧卡斯數(shù)列〔A000032-OEIS〕也滿足這一特點(diǎn),但初始項(xiàng)定義不同〕
二、求解方法
講完了定義,再來說一說如何求對(duì)應(yīng)的項(xiàng)。斐波那契數(shù)列是編程書中講遞歸必提的,因?yàn)樗前凑者f歸定義的。所以我們就從遞歸開始講起。
1.遞歸求解
intFib(intn){returnn<2?1:(Fib(n-1)+Fib(n-2));}
這是編程最方便的解法,當(dāng)然,也是效率最低的解法,原因是會(huì)出現(xiàn)大量的重復(fù)計(jì)算。為了防止這種情況,可以采用遞推的方式。
2.遞推求解
intFib[1000];Fib[0]=0;Fib[1]=1;for(inti=2;i<1000;i++)Fib[i]=Fib[i-1]+Fib[i-2];
遞推的方法可以在O(n)的時(shí)間內(nèi)求出Fib(n)的值。但是這實(shí)際還是不夠好,因?yàn)楫?dāng)n很大時(shí)這個(gè)算法還是無能為力的。接下來就要來講一個(gè)有意思的東西:矩陣。
3.矩陣遞推關(guān)系
學(xué)過代數(shù)的人可以看出,下面這個(gè)式子是成立的:不停地利用這個(gè)式子迭代右邊的列向量,會(huì)得到下面的式子:這樣,問題就轉(zhuǎn)化為如何計(jì)算這個(gè)矩陣的n次方了,可以采用快速冪的方法。快速冪_百度百科是利用結(jié)合律快速計(jì)算冪次的方法。比方我要計(jì)算,我們知道,而可以通過來計(jì)算,而可以通過計(jì)算,以此類推。通過這種方法,可以在O〔lbn〕的時(shí)間里計(jì)算出一個(gè)數(shù)的n次冪。快速冪的代碼如下:intQpow(inta,intn){intans=1;while(n){if(n&1)ans*=a;a*=a;n>>=1;}returnans;}將上述代碼中的整型變量a變成矩陣,數(shù)的乘法變成矩陣乘法,就是矩陣快速冪了。比方用矩陣快速冪計(jì)算斐波那契數(shù)列:#include<cstdio>#include<iostream>usingnamespacestd;constintMOD=10000;structmatrix//定義矩陣結(jié)構(gòu)體{intm[2][2];}ans,base;matrixmulti(matrixa,matrixb)//定義矩陣乘法{matrixtmp;for(inti=0;i<2;++i){for(intj=0;j<2;++j){tmp.m[i][j]=0;for(intk=0;k<2;++k)tmp.m[i][j]=(tmp.m[i][j]+a.m[i][k]*b.m[k][j])%MOD;}}returntmp;}intfast_mod(intn)//求矩陣base的n次冪{base.m[0][0]=base.m[0][1]=base.m[1][0]=1;base.m[1][1]=0;ans.m[0][0]=ans.m[1][1]=1;//ans初始化為單位矩陣ans.m[0][1]=ans.m[1][0]=0;while(n){if(n&1)//實(shí)現(xiàn)ans*=t;其中要先把a(bǔ)ns賦值給tmp,然后用ans=tmp*tans=multi(ans,base);base=multi(base,base);n>>=1;}returnans.m[0][1];}intmain(){intn;while(scanf("%d",&n)&&n!=-1){printf("%d\n",fast_mod(n));}return0;}4.通項(xiàng)公式無論如何,對(duì)于一個(gè)數(shù)列,我們都是希望可以建立與n的關(guān)系,也就是通項(xiàng)公式,而用不同方法去求解通項(xiàng)公式也是很有意思的?!?〕構(gòu)造等比數(shù)列設(shè),化簡得,比擬系數(shù)得,解得,由于故有,設(shè).那么有,設(shè),解得,即{}是等比數(shù)列。這樣就有到了現(xiàn)在,把上述解出的結(jié)果全部帶入上式,稍作變形,我們就可以寫出斐波那契數(shù)列的通項(xiàng)公式了這個(gè)方法還是比擬麻煩的,但是非常根底。事實(shí)上還有其他更簡單的方法?!?〕線性代數(shù)解法這個(gè)解法首先用到公式,如果可以找到矩陣使得為對(duì)角陣,我們就可以求出通項(xiàng)。下面需要一些高等代數(shù)知識(shí),沒學(xué)過的可直接跳過。首先令,解得兩個(gè)特征根兩個(gè)特征向量為那么而解出,中間矩陣的n次方可以直接求出來:然后可以輕易得到通項(xiàng)公式,上邊已經(jīng)給出,這里不再贅述?!?〕特征方程解法通過方法〔2〕,我們可以推導(dǎo)出一般的線性遞推數(shù)列的通項(xiàng)求解方法,也就是特征方程法。我們可以發(fā)現(xiàn),對(duì)于這種數(shù)列,通項(xiàng)總是可以表示為的形式,因此可以直接利用項(xiàng)求解,。具體做法如下:a.由遞推數(shù)列構(gòu)造特征方程,解出兩個(gè)特征值。b.帶入,列出如下方程:解得這樣直接寫出通項(xiàng)公式,是比擬簡單的做法?!?〕母函數(shù)法〔此方法涉及組合數(shù)學(xué)知識(shí)〕設(shè)斐波那契數(shù)列的母函數(shù)為,即解得再由冪級(jí)數(shù)展開公式……合并同類項(xiàng)并與的系數(shù)比擬即可。到這里,求解斐波那契數(shù)列通項(xiàng)的方法就說的差不多了。無論是計(jì)算機(jī)求解還是數(shù)學(xué)推導(dǎo),都表達(dá)出了非常多的技巧。而斐波那契數(shù)列的許多特性,就更加有意思了。三、斐波那契數(shù)列的數(shù)學(xué)性質(zhì)1.與黃金比的關(guān)系由通項(xiàng)公式,求相鄰兩項(xiàng)的商的極限,結(jié)果是黃金比,所以斐波那契數(shù)列又稱為黃金比數(shù)列。斐波那契數(shù)列和黃金比還和一個(gè)有趣的數(shù)學(xué)概念——連分?jǐn)?shù)有關(guān):2.一些簡單的規(guī)律〔1〕任意連續(xù)四個(gè)斐波那契數(shù),可以構(gòu)造出一個(gè)畢達(dá)哥拉斯三元組。如取1,1,2,3.中間兩數(shù)相乘再乘2==》4外層2數(shù)乘積==》3中間兩數(shù)平方和==》5得到3,4,5.下一組是5,12,13,,有興趣的讀者可以再試著推一推,證明也是容易的?!?〕整除性每3個(gè)連續(xù)的斐波那契數(shù)有且只有一個(gè)被2整除,每4個(gè)連續(xù)的斐波那契數(shù)有且只有一個(gè)被3整除,每5個(gè)連續(xù)的斐波那契數(shù)有且只有一個(gè)被5整除,每6個(gè)連續(xù)的斐波那契數(shù)有且只有一個(gè)被8整除,每7個(gè)連續(xù)的斐波那契數(shù)有且只有一個(gè)被13整除,…………每n個(gè)連續(xù)的斐波那契數(shù)有且只有一個(gè)被整除.〔3〕一些恒等式3.楊輝三角中的斐波那契數(shù)列如下圖,每條斜線上的數(shù)的和就構(gòu)成斐波那契數(shù)列。
即有4.相關(guān)數(shù)列:盧卡斯〔Lucas〕數(shù)列盧卡斯數(shù)列的定義除了第0項(xiàng)為2之外,與斐波那契數(shù)列完全一致。即其通項(xiàng)公式為:盧卡斯數(shù)列和斐波那契數(shù)列有這些關(guān)系:5.組合數(shù)學(xué)〔1〕一些恒等式〔2〕同余特性當(dāng)p為大于5的素?cái)?shù)時(shí),有:其中斐波那契數(shù)列還有許許多多的性質(zhì),我就不再一一介紹了。跑題了這么久,終于開始要真正答復(fù)下列問題了:斐波那契數(shù)列有什么用?四、斐波那契數(shù)列的應(yīng)用1.算法a.斐波那契堆斐波那契堆(Fibonacciheap)是計(jì)算機(jī)科學(xué)中最小堆有序樹的集合。它和二項(xiàng)式堆有類似的性質(zhì),可用于實(shí)現(xiàn)合并優(yōu)先隊(duì)列。特點(diǎn)是不涉及刪除元素的操作有O(1)的平攤時(shí)間,用途包括稠密圖每次Decrease-key只要O(1)的平攤時(shí)間,和二項(xiàng)堆的O(lgn)相比是巨大的改良。斐波那契堆由一組最小堆構(gòu)成,這些最小堆是有根的無序樹。可以進(jìn)行插入、查找、合并和刪除等操作1〕插入:創(chuàng)立一個(gè)僅包含一個(gè)節(jié)點(diǎn)的新的斐波納契堆,然后執(zhí)行堆合并2〕查找:由于用一個(gè)指針指向了具有最小值的根節(jié)點(diǎn),因此查找最小的節(jié)點(diǎn)是平凡的操作。3〕合并:簡單合并兩個(gè)斐波納契堆的根表。即把兩個(gè)斐波納契堆的所有樹的根首尾銜接并置。4〕刪除〔釋放〕最小節(jié)點(diǎn)分為三步:查找最小的根節(jié)點(diǎn)并刪除它,其所有的子節(jié)點(diǎn)都參加堆的根表,即它的子樹都成為堆所包含的樹;需要查找并維護(hù)堆的最小根節(jié)點(diǎn),但這耗時(shí)較大。為此,同時(shí)完成堆的維護(hù):對(duì)堆當(dāng)前包含的樹的度數(shù)從低到高,迭代執(zhí)行具有相同度數(shù)的樹的合并并實(shí)現(xiàn)最小樹化調(diào)整,使得堆包含的樹具有不同的度數(shù)。這一步使用一個(gè)數(shù)組,數(shù)組下標(biāo)為根節(jié)點(diǎn)的度數(shù),數(shù)組的值為指向該根節(jié)點(diǎn)指針。如果發(fā)現(xiàn)具有相同度數(shù)的其他根節(jié)點(diǎn)那么合并兩棵樹并維護(hù)該數(shù)組的狀態(tài)。對(duì)當(dāng)前堆的所有根節(jié)點(diǎn)查找最小的根節(jié)點(diǎn)。5〕降低一個(gè)點(diǎn)的鍵值:對(duì)一個(gè)節(jié)點(diǎn)的鍵值降低后,自鍵值降低的節(jié)點(diǎn)開始自下而上的迭代執(zhí)行下述操作,直至到根節(jié)點(diǎn)或一個(gè)未被標(biāo)記〔marked〕節(jié)點(diǎn)為止:如果當(dāng)前節(jié)點(diǎn)鍵值小于其父節(jié)點(diǎn)的鍵值,那么把該節(jié)點(diǎn)及其子樹摘下來作為堆的新樹的根節(jié)點(diǎn);其原父節(jié)點(diǎn)如果是被標(biāo)記〔marked〕節(jié)點(diǎn),那么也被摘下來作為堆的新樹的根節(jié)點(diǎn);如果其原父節(jié)點(diǎn)不是被標(biāo)記〔marked〕節(jié)點(diǎn)且不是根節(jié)點(diǎn),那么其原父節(jié)點(diǎn)被加標(biāo)記。如果堆的新樹的根節(jié)點(diǎn)被標(biāo)記〔marked〕,那么去除該標(biāo)記。6〕刪除節(jié)點(diǎn):把被刪除節(jié)點(diǎn)的鍵值調(diào)整為負(fù)無窮小,然后執(zhí)行“降低一個(gè)節(jié)點(diǎn)的鍵值”算法,然后再執(zhí)行“刪除最小節(jié)點(diǎn)”算法。斐波那契堆b.歐幾里得算法的時(shí)間復(fù)雜度歐幾里得算法是求解兩個(gè)正整數(shù)最大公約數(shù)的算法,又稱輾轉(zhuǎn)相除法。代碼如下:intgcd(inta,intb){returnb?gcd(b,a%b):a;}在最壞的情況下,我們可以證明,假設(shè)a較小,需要計(jì)算的次數(shù)為n,那么.雖然說一般分析的時(shí)候會(huì)當(dāng)成對(duì)數(shù)階,但數(shù)論最常用的歐幾里得算法竟然與斐波那契數(shù)列有關(guān),也確實(shí)是很讓人吃驚呢。2.物理學(xué):氫原子能級(jí)問題假定我們現(xiàn)在有一些氫氣原子,一個(gè)電子最初所處的位置是最低的能級(jí)〔Groundleverofenergy〕,屬于穩(wěn)定狀態(tài)。它能獲得一個(gè)能量子或二個(gè)能量子〔Quantaofenergy〕而使它上升到第一能級(jí)或者第二能級(jí)。但是在第一級(jí)的電子如失掉一個(gè)能量子就會(huì)下降到最低能級(jí),它如獲得一個(gè)能量子就會(huì)上升到第二級(jí)來?,F(xiàn)在研究氣體吸收和放出能量的情形,假定最初電子是處在穩(wěn)定狀態(tài)即零能級(jí),然后讓它吸收能量,這電子可以跳到第1能級(jí)或第2能級(jí)。然后再讓這氣體放射能量,這時(shí)電子在1級(jí)能級(jí)的就要下降到0能級(jí),而在第2能級(jí)的可能下降到0能級(jí)或者第1能級(jí)的位置去。電子所處的狀態(tài)可能的情形是:1、2、3、5、8、13、21…種。這是斐波那契數(shù)列的一部份。3.自然界:植物的生長科學(xué)家發(fā)現(xiàn),一些植物的花瓣、萼片、果實(shí)的數(shù)目以及排列的方式上,都有一個(gè)神奇的規(guī)律,它們都非常符合著名的斐波那契數(shù)列。例如:薊,它們的頭部幾乎呈球狀。在下列圖中,你可以看到兩條不同方向的螺旋。我們可以數(shù)一下,順時(shí)針旋轉(zhuǎn)的〔和左邊那條旋轉(zhuǎn)方向相同〕螺旋一共有13條,而逆時(shí)針旋轉(zhuǎn)的那么有21條。此外還有菊花、向日葵、松果、菠蘿等都是按這種方式生長的。還有菠蘿、松子等,也都符合這個(gè)特點(diǎn),一般會(huì)出現(xiàn)34,55,89和144這幾個(gè)數(shù)字。
最后上一張“斐波那契樹”的圖片:是的,這玩意就長這樣,這種植物是存在的。4.波浪理論與股市這個(gè)答主不懂,大家可自行閱讀文章波浪理論斐波那契數(shù)列與黃金分割率。不過波浪的形狀確實(shí)符合下邊要說的斐波那契螺旋:5.斐波那契螺旋斐波那契螺旋又稱黃金螺旋,在自然界中廣泛存在。如圖是一個(gè)邊長為斐波那契數(shù)列的正方形組成的矩形?!布右痪洌嚎粗@個(gè)圖,是不是能發(fā)現(xiàn)是顯而易見的?〕這樣連起來就是斐波那契螺旋了貝殼螺旋輪廓線向日葵的生長神奇的花6.建筑學(xué)7.據(jù)說一個(gè)小男孩參考斐波那契數(shù)列創(chuàng)造了太陽能電池樹:一名13歲的男孩根據(jù)斐波那契數(shù)列創(chuàng)造了太陽能電池樹,其產(chǎn)生的電力比太陽能光伏電池陣列多20-50%。斐波那契數(shù)列類似從0和1開始,之后的數(shù)是之前兩數(shù)的和,如0,1,1,2,3,5,8,13,21...AidanDwye在觀察樹枝分叉時(shí)發(fā)現(xiàn)它的分布模式類似斐波那契數(shù)列,這是大自然演化的一種結(jié)果,可能有助于樹葉進(jìn)行光合作用。因此,Dwye猜測(cè)為什么不按照斐波那契數(shù)列排列太陽能電池?他設(shè)計(jì)了太陽能電池樹,發(fā)現(xiàn)它的輸出電力提高了20%,每天接受光照的時(shí)間延長了2.5小時(shí)。8.斐波那契螺旋形的搖椅媽媽搖椅是設(shè)計(jì)師PatrickMessier為自己的妻子兼合作伙伴SophieFournier設(shè)計(jì)的,當(dāng)時(shí)他們剛有了第一個(gè)寶寶。當(dāng)Sophie宣布自己懷孕時(shí),她說想要一把搖椅,但發(fā)現(xiàn)沒有一把搖椅能滿足美觀舒適的標(biāo)準(zhǔn),于是Patrick決定自己做一把。于是就有了這把媽媽搖椅。像是一個(gè)飄在空中的絲帶,由一片纖維玻璃做成,曲線服從斐波那契
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 45123-2024公共安全生物特征識(shí)別應(yīng)用算法評(píng)測(cè)數(shù)據(jù)庫要求
- 二零二五年度高風(fēng)險(xiǎn)投資財(cái)產(chǎn)分割離婚協(xié)議書3篇
- 二零二五年股權(quán)質(zhì)押貸款資產(chǎn)評(píng)估及處置合同3篇
- 二零二五年度高端家具定制加工廠合作協(xié)議2篇
- 2024版場(chǎng)攤位租賃合同范文
- 二零二五年環(huán)境監(jiān)測(cè)兼職工程師合同保密與監(jiān)測(cè)數(shù)據(jù)協(xié)議3篇
- 2025年度物業(yè)與業(yè)主之間物業(yè)服務(wù)合同續(xù)約協(xié)議范本18篇
- 2025年度跨境電商平臺(tái)運(yùn)營及品牌推廣合同3篇
- 2024版廣告代理業(yè)務(wù)合同
- 二零二五年度物流運(yùn)輸反擔(dān)保合同與運(yùn)輸工具抵押協(xié)議2篇
- 2025年河北供水有限責(zé)任公司招聘筆試參考題庫含答案解析
- Unit3 Sports and fitness Discovering Useful Structures 說課稿-2024-2025學(xué)年高中英語人教版(2019)必修第一冊(cè)
- (完整版)形式發(fā)票模版(國際件通用)
- 武漢東湖賓館建設(shè)項(xiàng)目委托代建合同
- 安徽大學(xué)大學(xué)生素質(zhì)教育學(xué)分認(rèn)定辦法
- 巴布亞新幾內(nèi)亞離網(wǎng)光儲(chǔ)微網(wǎng)供電方案
- 高度限位裝置類型及原理
- 中文版gcs electrospeed ii manual apri rev8v00印刷稿修改版
- 新生兒預(yù)防接種護(hù)理質(zhì)量考核標(biāo)準(zhǔn)
- 除氧器出水溶解氧不合格的原因有哪些
- 沖擊式機(jī)組水輪機(jī)安裝概述與流程
評(píng)論
0/150
提交評(píng)論