解决复发:T(n)= T(n-1)+ T(n-2)+ 3

时间:2019-03-07 18:52:19

标签: math time-complexity recurrence master-theorem

T(1)= T(2)= 1,并且对于n> 2,T(n)= T(n-1)+ T(n-2)+ 3。

到目前为止我所做的:

T(n-1) = T(n-2) + T(n-3) + 3 + 3
T(n-2) = T(n-3) + T(n-4) + 3 + 3 + 3
T(n) = T(n-2) + 2T(n-3) + T(n-4) + 3 + 3 + 3 + 3 + 3
T(n) = T(1) + 2T(2) + T(n-4) + 3(n + 2)

我不确定这是否正确,如果正确,我如何摆脱T(n-4)。

1 个答案:

答案 0 :(得分:3)

这些类型的重复操作非常棘手,不幸的是重复的扩展方法将使您无处可寻。观察递归树只会给您一个上限,通常这并不严格。

我可以建议两种方法:


1。替代+标准定理

进行以下变量替换:

enter image description here

这是Akra-Bazzi method的正确格式,并带有参数:

enter image description here


2。斐波那契公式

斐波那契数列具有一个明确的公式,可以通过猜测Fn = a^n形式的解来得出。以此为类推,将类似的表达式替换为T(n)

enter image description here

等于常数和指数项:

enter image description here

取正根,因为负根的绝对值小于1,因此将随着n的增加而衰减为零:

enter image description here

(1)一致。