How can I unfold the recurrence: T(n)=2T((n+2)/3)

自古美人都是妖i 提交于 2019-12-31 04:04:05

问题


I'm trying to solve this recurrence, but I don't know how to unfold it.

T(n)=2T((n+2)/3) + 1

Can I ignore that "+2" and solve it as it was 2T(n/3) + 1?

This comes from a from a problem that uses a V[a..b] array and makes this return:

return V(X) + f(V, a, Y) + f(V, Z, b)

Where Y is (2a+b)/3 and Z is (a+2b)/3

So: ((b-a+3)/3) = ((n+2)/3)


回答1:


Sort of. The rigorous version of this trick is to set U(n) = T(n+1) and write

U(n) = T(n+1)
     = 2T((n+1+2)/3) + 1
     = 2T(n/3 + 1) + 1
     = 2U(n/3) + 1.

Then solve for U (e.g., U(n) = O(n^log3(2))) and then you should be able to find an asymptotic expression for T of the same order.



来源:https://stackoverflow.com/questions/42095743/how-can-i-unfold-the-recurrence-tn-2tn2-3

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!