递归斐波那契程序的时间复杂度

时间:2011-05-03 06:49:01

标签: c algorithm math recursion

  

可能重复:
  Computational complexity of Fibonacci Sequence

您好, 我昨天发现了一个归纳证据,证明了递归Fibonacci程序的时间复杂性。证明首先声称复杂性是指数级的(后来继续通过归纳证明它)说:

  

存在“r”,使得f(n)> =   r ^ n表示所有r> = 1且n> = 1。

     

然后它选择r等于1 + sqrt(5)/ 2,使其满足等式r ^ 2 = r + 1.

     

(后来证明它是r的选择)。

     

然后它说现在语句变成f(n)> = r ^(n-2)。

我不明白这一部分是如何从r ^ n变成r ^(n-2)的。有人请帮助我。

2 个答案:

答案 0 :(得分:3)

正如丹尼尔所说,r大于1,因此r^n大于r^(n-1),大于r^(n-2)等......

所以你确实:f(n) >= r^n >= r^(n-1) >= r^(n-2)

答案 1 :(得分:2)

  • f(n) >= r^n
  • r * r * f(n) >= r^n(自r > 1
  • f(n) >= r^(n-2)

我不知道这与时间复杂性有何关系,但是?这听起来更像是一个导致Binet公式的讨论。