斐波那契數(shù)列算法分析_第1頁
斐波那契數(shù)列算法分析_第2頁
斐波那契數(shù)列算法分析_第3頁
斐波那契數(shù)列算法分析_第4頁
斐波那契數(shù)列算法分析_第5頁
已閱讀5頁,還剩3頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

??精心整理??斐波那契數(shù)列算法分析有一的在月始第時(shí)產(chǎn)子個(gè)也如續(xù)只始月對沒死年有?底一配有對在雌兔2對在老下子對子底雌三兩的有5…計(jì)分看?3個(gè)每是數(shù)這的列1,有一樓梯有10級階,規(guī)定每一只能跨一或兩,要登上第10級臺階幾種不同走法?答:一契第有;臺種上有;臺種1,2,,5,,……級892,數(shù)列相鄰兩項(xiàng)前項(xiàng)比后的極限是少,就是,當(dāng)n于無大時(shí),F(xiàn)(n)/F(n+1)的極限是少?答:

由公到(就黃,大數(shù)數(shù)學(xué)是F(n)=F(n-1)+F(n-2)F(1)=1F(2)=1?

1:數(shù)用二序語言描

精心整理longfib1(intn){if(n<=2){return1;}else{returnfib1(n-1)+fib1(n-2);}}程使,的環(huán)下候候完到…效!遞歸效分析:用測longfib1(intn,int*arr){arr[n]++;if(n<=2){return1;}else{returnfib1(n-1,arr)+fib1(n-2,arr);}}可個(gè)fib(i)計(jì):

計(jì)反,成復(fù)函的間的候析T(N)=T(N-1)+T(N-2)+2,以納得

O(精心整O(fib(N)<(5/3)^N當(dāng)N>4時(shí),fib(N)>=(3/2)^N個(gè)

標(biāo)準(zhǔn)寫法:數(shù)法是。其實(shí),這違了遞歸的個(gè)規(guī)則:成效益法。合成效益法則Compoundinterestrule求解一個(gè)問題的同一實(shí)例的時(shí)候,切勿在不同的遞歸調(diào)用中做重復(fù)性的工作。所以在上面代碼中調(diào)fib(N-1)的時(shí)實(shí)際上同時(shí)算了fib(N-2)。這種小重復(fù)計(jì)算遞歸過程就會產(chǎn)生巨大的運(yùn)時(shí)間。?

2遞可似,語如longfib(intn,longa,longb,intcount){if(count==n)returnb;returnfib(n,b,a+b,++count);}longfib2(intn){returnfib(n,0,1,1);}這種方法雖是遞歸了但是并不觀,而且率上相比面的迭代循并沒有優(yōu)。數(shù)代也用語述//也以用數(shù)組每次計(jì)算f(n)存儲下來用來下次算用(空換時(shí)間)longfib3(intn){longx=0,y=1;for(intj=1;j<n;j++)

ON)精心整ON){y=x+y;x=y-x;}returny;}這時(shí)程序的率顯然為矩陣乘法:

,N=45的候<就能得結(jié)果。數(shù)它乘連就是計(jì)二,面念代:{:matr[2][2];a,Matrix*({ret;}};b,c,d){

。O(1精心整。O(1}{}{*}const{m;}fib4(int{}這時(shí)程序的率為公式解法:在

O(的時(shí)間就能得到F(n)了:

精心整理注意:其中x]表取距離x最近的整。用C++寫的代如下:longfib5(intn){doublez=sqrt(5.0);doublex=(1+z)/2;doubley=(1-z)/2;return(pow(x,n)-pow(y,n))/z+0.5;}這個(gè)與數(shù)學(xué)實(shí)現(xiàn)開方乘方本身率有關(guān)的我想應(yīng)該是在O(log(n))的效率。總結(jié):出中斐的測函intmain(){cout<<fib1(45)<<endl;cout<<fib2(45)<<endl;cout<<fib3(45)<<endl;cout<<fib4(45)<<endl;cout<<fib5(45)<<endl;return0;}會待它快并:兩的示于都到所大,獲后位效。波在中少當(dāng)n很的如綜本歸了要法、后問題算法設(shè)計(jì)ALGORITHM//果一個(gè)皇后放在第k行的列,則返回true;則返回false。X一個(gè)全數(shù)組,進(jìn)此過程時(shí)已了k值。//:;,k

精心整理i←1whilei<kdo在同一有兩個(gè)后//orABS(X(i)X(k))=-k)//同—條斜線上/thenreturn(false)endifi←return(true)//滿約束/procedureNQUEENS(n)//過程使用回法求出一個(gè)n*n棋盤上放n個(gè)皇,使能互相擊的有可能置//X(1)←;k←是當(dāng)前行;X(k)是當(dāng)前列/Whilek>0do//對所的行執(zhí)以下語句//←X(k)+1//移到下列/WhileX(k)≤nandnotPLACE(k)do←X(k)十如果第k個(gè)皇后的列不合理,就看下一//n//找到一位置/thenifk=n//是一個(gè)完的解嗎//thenprint(X)//是打印這個(gè)數(shù)/←k+1;X(k)←0;}擴(kuò)展搜索下個(gè)皇后/←回溯//endifProgram:#include<math.h>intk=0,a[20],j=1,flag,n,c=0;//k解的個(gè)數(shù)n皇后的個(gè)數(shù)標(biāo)記有沒有放置皇后voidlycQueen(){//遞歸求解函數(shù)inti,h;//i為行號,h列號a[j]=h;第j個(gè)皇后的位置依次跟前面?zhèn)€皇后比較if(a[i]==a[j]||abs(a[j]-a[i])==abs(j-i)){flag=0;break;}//兩個(gè)皇后在一行或者同一對角線上,突elseflag=1;//沖突,置一個(gè)皇后}//forif(flag==0&&a[j]!=n)continue;//沒試探完繼續(xù)試探if(flag==1&&j==n){//放置完個(gè)皇后得到一個(gè)解解的個(gè)數(shù)加輸出i個(gè)皇后放置的行號printf("\n");

精心整理flag=0;}//if歸調(diào)用回溯退回去重新試探}/

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論