我不熟悉主定理,递归树和替换方法之外的递归求解技术。我猜测解决大O绑定的以下重现不会使用以下方法之一:
T(n) = T(n-1) + 2T(n-2) + 1
答案 0 :(得分:3)
我们可以进行替换U(n) = T(n) + 1/2
然后再次出现
U(n) = T(n) + 1/2
= T(n-1) + 2T(n-2) + 1 + 1/2
= T(n-1) + 1/2 + 2(T(n-2) + 1/2)
= U(n-1) + 2U(n-2),
这有点神奇但是,正如templatetypedef提到的,魔法可以用歼灭方法创造。现在我们只需解决线性齐次递归问题。特征多项式x^2 - x - 2
因子为(x+1)(x-2)
,因此解为U(n) = a(-1)^n + b2^n
,其中a
和b
是任何常量。同等地,T(n) = a(-1)^n + b2^n - 1/2
,Theta(2^n)
,特殊情况除外。
答案 1 :(得分:2)
此递归称为non-homogeneous linear recurrence.,它通过将其转换为同类递归来解决:
T(n) = T(n-1) + 2T(n-2) + 1
T(n+1) = T(n) + 2T(n-1) + 1
从2中减去1并更改基数,得到T(n) = 2 T(n-1) + T(n-2) - 2 T(n-3)
。相应的特征方程是:
x^3 - 2x^2 - x + 2 = 0
有解决方案x = {-1, 1, 2}
。这意味着递归看起来像:
c1 * (-1)^n + c2 * 2^n + c3 * 1^n = c1 * 2^n + c2 (-1)^n + c3
在知道T(0)和T(1)的情况下可以找到所有这些常数。对于您的复杂性分析,很明显这是指数O(2^n)
。