0

我今天要去见我的助教,但只是没有时间。我在一个算法分析课上,我们开始做递归关系,我不能 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。在这一点上,我想我一定是做错了什么,因为我以前从未见过这个问题。

谁能帮我解决这个问题?我将不胜感激。

4

1 回答 1

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

总体运行时间看起来像是为从 0 到基本情况的每个 i 值添加“c(ni)^2”。希望这能让你走上正确的轨道。

于 2012-10-23T23:52:48.400 回答