遇到处理T(n)运行时问题的问题

时间:2012-10-23 23:45:22

标签: math time recurrence

我今天要去见我的助教,但是没有时间。我在算法分析课上,我们开始做复发关系,如果我正确地解决这个问题,我不能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.此时我想我完全肯定做错了,因为我以前从未见过这个问题。

有人能为我提供一些如何解决这个问题的帮助吗?我将不胜感激。

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到基本情况。希望这能让你走上正轨。