求解斐波那契数列的方法.doc

求解斐波那契数列的方法.doc

ID:59151793

大小:302.50 KB

页数:9页

时间:2020-09-11

求解斐波那契数列的方法.doc_第1页
求解斐波那契数列的方法.doc_第2页
求解斐波那契数列的方法.doc_第3页
求解斐波那契数列的方法.doc_第4页
求解斐波那契数列的方法.doc_第5页
资源描述:

《求解斐波那契数列的方法.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、ExperiencingMagicAlgorithms实验室9#204实验目的或要求1.Designaninteractiveuserinterface(e.g.,amenu)foruser’sselection,ifpossible,agraphicaluserinterfaceisbest.2.UsingtheiterativealgorithmtofindthelargestnsuchthatthenthFibonaccinumberdosenotexceedthecomputer’smaximumintegervalue(e.g,232-1forint).

2、3.Accordingtothelargestncomputedinsubtask2,computethenthFibonaccinumberbytherecursivedefinition-basedalgorithm,canitfinishin5minute?4.Computethelargestnthatyourcomputercangiveasolutionin1,5,or10minutesbytherecursivedefinition-basedalgorithm,anddothesamethingbytheiterativealgorithm.5.C

3、omputethenthFibonaccinumberintheclosedformF(n)=[fn/sqrt(5)]inanefficientway.Whatisthesmallestnwhenanerroroccurs?6.ComputethenthFibonaccinumberbythematrix-multiplication-basedformulaattheendofChapter2.5.2oftextbook.7.Comparethenumberofbasicoperationsofthe4differentalgorithmsforthesamei

4、nputn,Trytograspthedramaticallydifferentgrowthrateoflogarithmic,linearandexponential.实验原理(算法流程)求解斐波那契数列的方法:1.递推算法根据递推公式可以很容易想到用递归的方法求解第n+1项的值,代码如下:longFibonacci_digui(inti){if(i==1

5、

6、i==0)returni;if(i>1)returnFibonacci_digui(i-1)+Fibonacci_digui(i-2);}这种方法在计算F[n]时,需要计算从F[2]到F[n-1]每一项的值

7、,这样简单的递归式存在着很多的重复计算,如求F[5]=F[4]+F[3],在求F[4]的时候也需要求一次F[3]的大小,等等。2.迭代算法为了减少上述的重复运算,可以用一个数组存储所有已经计算过的项。这样便可以达到用空间换时间的目的。在这种情况下,时间复杂度为O(N),而空间复杂度也为O(N)。longFibonacci(inti){inta=0,b=1,c=1;if(i==1

8、

9、i==0)returni;if(i>1){for(intj=2;j<=i;j++){c=a+b;a=b;b=c;};}}3.用公式法计算Fibonacci如果我们知道一个数列的通项公式,

10、利用公式来计算会更加容易。但公式引入了无理数,所以不能保证结果的精度。doubleFibonacci_formula(intn){doublea=1.0,b=1.0;for(inti=1;i<=n;i++){a*=(1+sqrt5)/2;实验原理(算法流程)b*=(1-sqrt5)/2;}}4.流程图ENDnoyes显示结果Fibonacci_a_minute();1分钟内能计算的FibonaccimaxN();计算机能表示的最大的FibonacciFn();求第N个Fibonacci数Fibonacci_digui();递归法计算第N个FibonacciFibo

11、nacci();用迭代法计算第N个Fibonacciif(Fibonacci_formula(i)!=Fibonacci(i))menu();Fibonacci();Main()程序界面(效果图)程序界面(效果图)程序代码#include#includeusingnamespacestd;constdoublesqrt5=sqrt(5.0);longFibonacci(inti)//用迭代的方法计算第N个Fibonacci,返回第N个Fibonacci{inta=0,b=1,c=1;//a储存F(n-2),b储存F(n-1),c储

12、存F(n)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。