求解递归关系T(n)= T(n-1)+ n

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求解递归关系T(n)= T(n-1)+ n相关的知识,希望对你有一定的参考价值。

我从之前对这个问题的回答中看到,该人给出了:

T(n)= T(n-2)+ n-1 + n

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

T(n)= T(n-k)+ kn -k(k-1)/ 2

我不完全理解第三行。我可以看到它们可能是从1 / 2n(n + 1)的算术级数公式求和得出的吗?但他们是如何得到kn和k(k-1)/ 2前的减号?

答案

从...开始:

T(n) = T(n-2) + n-1 + n

我们可以重写如下:

T(n) = T(n-2) + 2n - 1

第二个公式说:

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

让我们以与第一个相同的方式转换它:

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

通过扩展更多项,我们注意到在递归项中从n中减去的数字:T(n-3)总是与乘以n的数相同。我们可以重写如下:

T(n) = T(n-k)+kn+...

我们还注意到-2 -1是算术系列,但是否定了k-1的恒星。与n(n + 1)/ 2一样,k-1的算术是(k-1)* k / 2。这样的关系就是

T(n) = T(n-k)+kn-(k-1)*k/2 or T(n) = T(n-k)+kn-k*(k-1)/2

希望这个帮助;)

另一答案

k(k-1)/2术语只是数字0到k-1的总和。您可以看到为什么需要从以下计算中减去它:

T(n) = 
T(n-k) + n + (n-1) + (n-2) + ... + (n-(k-1)) =
T(n-k) + (n-0) + (n-1) + (n-2) + ... + (n-(k-1)) =
T(n-k) + n + n + n + ... + n - 0 - 1 - 2 ... - (k-1) =
T(n-k) + kn - (0 + 1 + 2 + ... + (k-1)) =
T(n-k) + kn - k*(k-1)/2
另一答案

如果仔细观察:

T(n) = T(n-2) + n-1 + n = T(n-2) + 2n -1
T(n)= T(n-3) + n-2 + n-1 + n = T(n-3)+ 3n -(2+1) 
.
.
.
T(n)= T(n-k) + n-(k-1) + n-(k-2) + ... + n = T(n-k) + K * n + (-1 -2 - ... -(k-2) -(k-1))= T(n-k) + kn - k(k-1)/2

您可以使用递归定理来证明它

以上是关于求解递归关系T(n)= T(n-1)+ n的主要内容,如果未能解决你的问题,请参考以下文章

求解递归关系T(n)= T(n-1)+ n

求解递归关系 T(n) = √n T(√n) + n [关闭]

如何求解递归 T(n) = 2T(n^(1/2)) + log n? [关闭]

简单:通过迭代法求解 T(n)=T(n-1)+n

求解递归 T(n) = T(n/2) + lg n? [关闭]

使用主定理求解递归 T(n) = T(n / 2) + O(1)? [关闭]