我今天要去见我的助教,但是没有时间。我在算法分析课上,我们开始做复发关系,如果我正确地解决这个问题,我不能100%肯定。我到了一个地方,我只是卡住了,不知道该怎么做。也许我做错了,谁知道呢。这个问题并不关心上限或下限,它只是想要一个theta。
问题在于:
T(n) = T(n-1) + cn^(2)
这就是我到目前为止所做的......
=T(n-2) + (n-1)^(2) + cn^(2)
=T(n-3) + (n-2)^(2) + 2cn^(2)
=T(n-4) + (n-3)^(2) + 3cn^(2)
所以,在这一点上,我将概括并将K替换为等式。
T(n-k) + (n-k+1)^(2) + c(K-1)^(2)
现在,我开始将基本情况1带入图片中。在几个先前的,更简单的问题上,我能够将我的广义k等式设置为等于1然后求解K.然后将K重新置于等式中以得到我的最终答案。
但我完全坚持(n-k + 1)^(2)部分。我的意思是,我真的应该把这一切都搞砸了吗?我做了它并得到k ^(2)-2kn-2k + n ^(2)+ 2n +1 = 1.此时我想我完全肯定做错了,因为我以前从未见过这个问题。
有人能为我提供一些如何解决这个问题的帮助吗?我将不胜感激。
答案 0 :(得分:1)
即使在“我到目前为止”的第一行,你所拥有的东西也不完全正确。 继续进行完整的替换,看看:
T(n-1) = T(n-2) + c(n-1)^2
所以
T(n) = T(n-2) + c(n-1)^2 + c(n)^2
T(n) = T(n-3) + c(n-2)^2 + c(n-1)^2 + c(n)^2
整体运行时间看起来像为i的每个值添加“c(n-i)^ 2”从0到基本情况。希望这能让你走上正轨。