求解T(n)= T(n - 1)+ T(n - 2) - T(n - 3)

时间:2014-05-04 18:46:42

标签: math discrete-mathematics recurrence

某种算法的运行时间由递归关系

给出
  

如果n≤3

,则T(n)= n      

T(n)= T(n-1)+ T(n-2) - T(n-3)否则

我知道顺序是n,n 2 ,n n 或n log n,但我不知道哪一个。我尝试使用替换方法并使用递归树方法解决这个问题,但无法取得任何进展。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

这是扩展一些术语可以帮助的地方:

  • T(1)= 1
  • T(2)= 2
  • T(3)= 3
  • T(4)= T(3)+ T(2) - T(1)= 3 + 2 - 1 = 4
  • T(5)= T(4)+ T(3)-T(2)= 4 + 3 - 2 = 5
  • T(6)= T(5)+ T(4)-T(3)= 5 + 4 - 3 = 6

这里的一般模式似乎是T(n)= n。我们可以通过归纳来形式化这个:

    根据定义,
  • T(1)= 1,T(2)= 2,T(3)= 3.
  • T(n)= T(n - 1)+ T(n - 2) - T(n - 3)= n - 1 + n - 2 - n + 3 = 2n + 3 - n - 3 = n

希望这有帮助!