如何解决这种复发T(n)= T(n-1)+ lg(1 + 1 / n),T(1)= 1?

时间:2015-12-08 04:34:22

标签: algorithm time-complexity asymptotic-complexity recurrence

我在这次复发中陷入困境:

T(n) = T(n − 1) + lg(1 + 1/n), T(1) = 1?

一段时间似乎主方法无法应用于此方法。

3 个答案:

答案 0 :(得分:6)

我们有:

lg(1 + 1/n) = lg((n + 1) / n) = lg(n+1) - lg(n)

因此:

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

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

...

T(3) - T(2) = lg(3) - lg(2)

T(2) - T(1) = lg(2) - lg(1)

添加和删除,我们得到:

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

T(n) = 1 + lg(n + 1)

因此T(n) = O(lg(n))

答案 1 :(得分:1)

答案与其他正确答案相同,只是证明不同。

根据给定的重复创建以下所有等式:

  • T(n)= T(n-1)+ Log((n + 1)/ n)
  • T(n-1)= T(n-2)+ Log(n /(n-1))
  • T(2)= T(1)+ Log(3/2)

对上述方程中的所有RHS和LHS求和得到:

  • T(n)= T(1)+ Log(3/2)+ Log(4/3)+ ... + Log((n + 1)/ n)

由于Log(a)+ Log(b)= Log(ab),

  • T(n)= 1 + Log((n + 1)/ 2)
  • T(n)= Log(10)+ Log((n + 1)/ 2)= Log(5n + 5),假设基数为10并且使用1 = Log 10 10 < / LI>

因此T(n)= O(Log(5n + 5))= O(Log(n))

答案 2 :(得分:1)

有些人声称这不是线性的。它是rand。这是数学分析:

如果您将开始展开递归,您将获得:

enter image description here

如果你这样做到最后你会有

enter image description here

或简短形式:

enter image description here

一旦你用积分逼近总和,你就会得到:

enter image description here

最后,如果你采取限制x - &gt;无穷:

您会看到第一部分是enter image description here

这为您提供了O(log(n))

的最终解决方案log(x + 1)