Algorithm 用多重T(n)s解递推关系
T(n)=1/2(T(n− 1) +T(n)− 2) )+cn,其中c>0 我很难理解如何解决多次T(n)s复发。我做了很多实践,只需要一个T(n)就可以解决递归问题,按照定义我可以做得很好。但这不是一个可以用主定理直接解的递归。无论如何,我可以开始一个很好的方法来解决这个问题?解决齐次递归: 解特解 (1) 我们想找到一个Algorithm 用多重T(n)s解递推关系,algorithm,Algorithm,T(n)=1/2(T(n− 1) +T(n)− 2) )+cn,其中c>0 我很难理解如何解决多次T(n)s复发。我做了很多实践,只需要一个T(n)就可以解决递归问题,按照定义我可以做得很好。但这不是一个可以用主定理直接解的递归。无论如何,我可以开始一个很好的方法来解决这个问题?解决齐次递归: 解特解 (1) 我们想找到一个s(n),使得s(n)=1/2(s(n-1)+s(n-2))+cn 我们知道,cn是一个多项式(在n中),所以特殊的解也可以作为多项式找到 尝试s(n)=an会导致: an=
s(n)
,使得s(n)=1/2(s(n-1)+s(n-2))+cn
我们知道,cn
是一个多项式(在n
中),所以特殊的解也可以作为多项式找到
尝试s(n)=an
会导致:
an=1/2(an-1+an-2)+cn
和an
中的所有术语都简化了,所以尝试下一个程度:s(n)=an^2+bn
an^2+bn=1/2(a(n-1)^2+b(n-1)+a(n-2)^2+b(n-2))+cn
发展每个人然后识别我们得到的
a = c/3
b = 5c/9
如果我们不信任自己的有效演算能力,请快速检查:
由于s(n)
必须对所有n
都有效,让我们任意设置n=2,c=7
,并检查s(2)是否仍然验证(1)idem
低于八度音阶表示s(2)=0
复杂性
T(n)=T_H(n)+sp(n)=α+β(-1/2)^n+c/3n^2+5c/9n
所以
T(n)
在O(n^2)
你不需要主定理。。。只要解一个简单的线性递归关系。@user753642我觉得这没那么容易。我不能用一个替换来帮助去掉非齐次项。如果你知道怎么解决这个问题,你能帮我们吗?
a = c/3
b = 5c/9
n = 2, c=7
s(n)-1/2(s(n-1)+s(n-2))-cn ?= 0
octave:1> n=2
n = 2
octave:2> c=7
c = 7
octave:3> c/3*n^2 + 5*c/9*n - 1/2*(c/3*(n-1)^2 + 5*c/9*(n-1) +c/3*(n-2)^2 + 5*c/9*(n-2))-c*n
ans = 0