标签:关于 递归 target 时间比较 分割 jsb fill 描述 解释
先贴上链接:http://blog.csdn.net/happykocola/article/details/73933314
因为最近在复习初赛,然后碰到了这道题,并不会做,才发现有这么高明的方法...
已知递推关系式:
f(n)=5f(n-1)-6f(n-2) (n>1)
f(0)=1
f(1)=0
则f(n)的通项式为:______________________________
解释:通过特征方程法,
我们可以列出这样一个方程 x^2=5*x-6
然后解得 x1=2,x2=3
那么可以大致列出一个通项式 f(n)=a*2^n+b*3^n
最后把f(0)和f(1)代入,求出a和b的值,即可
答案为f(n)=3*2^n-2*3^n
----------------------------------------(萌萌哒的分割线)-----------------------------------------------
下面是一些关于这个方法的解释:
问题:
递归公式F(N) = F(N-1)+ F(N-2),F(N)的特征方程为:x^2 = x + 1.
该递归公式即斐波那契数列,但其特征方程是怎么求得的,却不明白,于是查找了一些资料,总结如下.
首先,回顾高中数列相关的内容,如下,
求该数列的通项公式,过程如下,
这样求,虽然结果正确,但过程繁琐,很容易出错;有一种新的方法求解递归公式的通项公式,即使用递归公式的特征方程求解递推公式的通项公式,
先来一个直观的例子,还是如下递推公式,
其特征方程为
解为x0 = 1, x2 = 3,
则,
代入a0 = 3, a1 = 5可得:
可以看到,这两种方法计算的结果相同,且都是正确的,但使用特征方程求解,十分方便.
使用特征方程的一个问题是,如何计算得到递推公式的特征方程,
如上图,计算一个递推公式的通项公式,只要将c1和c2的值带入r^2 = c1 * r + c2即可,然后用上述的方法求解通项公式即可.
至于原理,自己数学不好,尝试去了解一下,但无奈比较难,而且现在面临秋招,时间比较紧,就没有继续往深处挖掘了.
注意,上述方法仅针对这种形式的递推公式.
最后的最后,附上开头问题的解决方法,为了省事,直接copy《编程之美》的内容了,
标签:关于 递归 target 时间比较 分割 jsb fill 描述 解释
原文地址:http://www.cnblogs.com/Dance-Of-Faith/p/7660647.html