【问题标题】:Solving a Recurrence Relation: T(n) = T(n-1) + n-1求解递归关系:T(n) = T(n-1) + n-1
【发布时间】:2019-04-15 15:30:09
【问题描述】:

我被要求解决这个递归关系。我得到了下一个解决方案:https://imgur.com/a/xWoTI40

所以我决定问我的老师是否正确。他告诉我不是;这是正确的解决方案:https://imgur.com/a/CGD0ta8

我现在完全一无所知。我最想了解为什么我的错了;最多我认为它实际上是正确的。

谁能解释一下?

【问题讨论】:

  • 我投票结束这个问题,因为它是一个数学问题,而不是一个编程问题。
  • 你也应该要求关闭这个@RaymondChen:stackoverflow.com/questions/2752977/how-to-solve-tn-tn-1-n
  • 第二个解决方案对我来说似乎不正确,特别是因为对于较大的 n 值,它会是负数。
  • @xFunkyTimes 完成,谢谢。

标签: algorithm recurrence


【解决方案1】:

您的解决方案是正确的。以下是具有相同结果的不同方法:

t(1) = 0 (given)
t(2) = t(1) + 1 = 1
t(3) = t(2) + 2 = 1 + 2 = 3
t(4) = t(3) + 3 = 1 + 2 + 3 = 6
...
t(n) = 1 + 2 + ... + (n-1) = n * (n - 1) / 2 = Theta(n^2).

第二个=符号后老师的解法是错误的。这是老师写的:

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

但实际上以下是正确的:

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

这实际上正是你得到的。老师似乎放弃了一个n 术语。

事实上,老师的解决方案以 -n^2 的主导词结束,这显然是错误的,因为所有 n >= 0 都是 t(n) >= 0。

【讨论】:

  • 这正是我想要的。非常感谢@pkpnd
猜你喜欢
  • 2017-12-22
  • 1970-01-01
  • 1970-01-01
  • 2021-08-30
  • 2016-03-12
  • 1970-01-01
  • 2011-11-08
  • 2012-06-24
  • 1970-01-01
相关资源
最近更新 更多