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

Algorithm 求解递归关系:T(n)=T(n-1)+;n-1,algorithm,recurrence,Algorithm,Recurrence,我被要求解决这个递归关系。我得到了下一个解决方案: 所以我决定问我的老师这是否正确。他告诉我不是这样的;这是正确的解决方案: 我现在完全不知所措。我最想理解的是为什么我的错了;最重要的是我认为它实际上是对的 有人能解释一下吗?你的解决方案是正确的。这里有一种不同的方法,结果相同: 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

我被要求解决这个递归关系。我得到了下一个解决方案:

所以我决定问我的老师这是否正确。他告诉我不是这样的;这是正确的解决方案:

我现在完全不知所措。我最想理解的是为什么我的错了;最重要的是我认为它实际上是对的


有人能解释一下吗?

你的解决方案是正确的。这里有一种不同的方法,结果相同:

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
结束,这显然是错误的,因为
t(n)>=0
对于所有的
n>=0

我投票结束这个问题,因为它是一个数学问题,这不是一个编程问题。你也应该要求关闭这个问题@RaymondChen:第二个解决方案对我来说似乎不正确,特别是因为如果n的值很大,它将是负值。@xFunkyTimes Done,谢谢。这正是我要找的。非常感谢@pkpnd