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)。
答案 0 :(得分:3)
这些类型的重复操作非常棘手,不幸的是重复的扩展方法将使您无处可寻。观察递归树只会给您一个上限,通常这并不严格。
我可以建议两种方法:
进行以下变量替换:
这是Akra-Bazzi method的正确格式,并带有参数:
斐波那契数列具有一个明确的公式,可以通过猜测Fn = a^n
形式的解来得出。以此为类推,将类似的表达式替换为T(n)
:
等于常数和指数项:
取正根,因为负根的绝对值小于1,因此将随着n
的增加而衰减为零:
与(1)一致。