菲波纳契数列第2007个数是多少

王朝知道·作者佚名  2010-10-06
窄屏简体版  字體: |||超大  
 
分類: 教育/科學 >> 科學技術
 
問題描述:

1,1,2,3,5,8,13,21,34,55,...以此加下去,当加到第2007个数的时候是什么。注意是2007个。

參考答案:

答案是

[(1+5^0.5)^2007-(1-5^0.5)^2007]/(5^0.5)/2^2007

(5^0.5是根号5)(这个数大于2^2005,2^2005有好几百位数,你不可能把它全写出来的)

这个答案已无法化简了

这个数值很大,非要计算出每一位的具体值是不可能的

用计算机算也不可能算出来的,只能给你一个近似的指数形式的值。

下面是数学上的解法。

下面用特征根法求它的通项(如果想了解具体的特征根法的原理请找一本竞赛书,上面会有的)

a[1]=1,a[2]=1

a[n+2]=a[n]+a[n+1]

上式中通项公式的特征根方程为x^2=x+1

故特征根值为x1=(1+5^0.5)/2,x2=(1-5^0.5)/2

(5^0.5是根号5)

故a[n]=A*(x1)^n+B*(x2)^n

利用a[1]=1,a[2]=1代入上式,两个方程解两个未知数,

可求出A=1/(5^0.5),B=-1/(5^0.5),

再把n=2007代入

即得a[2007]

附:(c语言的程序设计)

#include<stdio.h>

void main()

{

int n,i;

double s=f1=f2=1;

printf("putin the number:");

scanf("%d",&n);

for(i=1,i<n-1,i++)

{f1=f2;

f2=s;

s=f1+f2;

}

printf("the%d number is%e\n",n,s);

}

要求第2007个数就输入2007就可以了.

由于这个数太大了,用整型的话会溢出,故只好用用double型,且用指数形式输出.

上面那位老兄的程序,数值会溢出的

如果有哪一部分不懂请指明,我再修复答案.

小贴士:① 若网友所发内容与教科书相悖,请以教科书为准;② 若网友所发内容与科学常识、官方权威机构相悖,请以后者为准;③ 若网友所发内容不正确或者违背公序良俗,右下举报/纠错。
 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航