1,1,2,3,5,8,13,21,******第2007个数是多少?
2个回答
展开全部
宝贝,这是个菲波纳契数列。
答案是
[(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型,且用指数形式输出.
答案是
[(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型,且用指数形式输出.
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询