问题:
使用重新取代来解决以下递推方程式:
T(N)= 2T(n-1)+ n; n> = 2且T(1)= 1
到目前为止,我有这个:
T(n)= 2T(n-1)+ n
= 2(2T(n-2)+(n-1))+ n
= 4T(n-2)+ 3n -2
= 2(4T(n-3)+ 3(n-1)-2)+ n
= 2(4T(n-3)+ 3n -3 -2)+ n
= 2(4T(n-3)+ 3n -5)+ n
= 8T(n-3)+ 6n-10 + n
= 8T(n-3)+ 7n -10
我只是想知道到目前为止,我接近这个的方式是正确的。 感谢任何帮助,谢谢。
答案 0 :(得分:1)
这一步是错误的:
= 4T(n-2) + 3n -2
= 2(4T(n-3) + 3(n-1) -2) + n
应该是
= 4T(n-2) + 3n -2
= 4(2T(n-3) + (n-2)) + 3n - 2
您将T(n-i)
替换为2T(n-i-1) + (n-i)
。
除此之外,我认为你错了。老师要你做的是感觉 T(n)
的价值。在这种情况下,您会看到每次迭代时,将第一个系数乘以2
,最后得到一个像an+b
这样的成员。这意味着T(n) = 2^n + O(n)
因为只有最大的成员才有意义。