一个关于极限证明的问题。(c#新手)
有这样一个数列:
a[1]=1;
a[2]=1;
a[n]=a[n-1]+a[n-2](n> 2);
求证明:n趋向无穷大,a[n-1]/a[n-2]=0.618.
我是新手,在一本书里看到的题目。请大家多帮忙。谢谢!
------解决方案--------------------你是做数学题还是程序?
------解决方案--------------------o,这是著名的fibonacci数列呀
------解决方案--------------------a[n-1]/a[n-2]=0.618,就是让你证明fibonacci在趋于无穷两项的比是一个黄金分割!
这毫无疑问是一个数学问题喽!
------解决方案--------------------斐波那契数列……
------解决方案--------------------a[n-1]比a[n-2]大,能除出0.618?!!
------解决方案--------------------有难度
------解决方案--------------------呵呵,我记得好像是这样的:
Fib(n) = (a^n - b^n)/sqrt(5);
a = (1 + sqrt(5))/2
b = (1 - sqrt(5))/2
------解决方案--------------------证明:fn=fn-1+fn-2,等式两边同除以fn-1得到一个新数列:
bn=1+1/bn-1(n> 1),b1=1,bn极限存在,故当n趋于无穷大时,bn=bn-1,因此得到等式bn=1+1/bn,解得n=(1+sqrt5)/2即PHI黄金分割.
------解决方案--------------------你的n越大值就越接近0.618,要看你的n想取多大了。如果你的n大于计算机语言的最大值,你就要考虑用链表来存储。
------解决方案--------------------楼上你的方法是纯数学方法吧?
我觉得还是要用这个公式从程序的角度能更好的证明:
Fib(n) = (a^n - b^n)/sqrt(5);