【问题标题】:T(n) = T(n-1) + 10/n [closed]T(n) = T(n-1) + 10/n [关闭]
【发布时间】:2013-12-27 09:19:35
【问题描述】:

到目前为止我所做的是:

T(n-1) + 10/n

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

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

假设n-k = 1,

所以...我在这里迷路了,

T(n-k) + ??

【问题讨论】:

  • 我投票结束这个问题,因为这是关于数学而不是编程。

标签: divide-and-conquer recurrence


【解决方案1】:

我的理解是:

T(n) =T(n-1) + 10/n

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

T(n-2)=T(n-3) + 10/(n-2)

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

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

同样,

T(n) =T(nk) + 10/(nk) + 10/(n-k+1) + 10/(n-k+2)+......... + 10 /n

对于 n-k=1:

T(n) =T(1) +10*(1/1 + 1/2 + 1/3 + ....1/n )

所以, (1/1 + 1/2 + 1/3 + ................1/n ) 是一个谐波级数,它的总和不能完美地找到,但它与 log(n )。

所以,T(n) 的顺序是 log(n)。

sum of harmonic progression:click here

【讨论】:

    【解决方案2】:

    假设边界条件T(1)=1,否则递归定义不明确。

    你可以把重复写出来:

    T(n) = T(n-1) + 10/n = T(n-2) + 10/(n-1) + 10/n
         = ...
         = 10 * (1/n + 1/(n-1) + ... + 1)
         = 10 * H_n,
    

    其中H_n 是第n 个Harmonic number。众所周知H_n=Theta(log n)。 (您可以通过注意 log n = integral from 1 to n 1/n dn 和总和 1 + 1/2 + ... + 1/n 从上方以该积分为界来证明这一点。)

    因此T(n) = Theta(log n)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-24
      • 2013-03-17
      • 2019-04-15
      • 1970-01-01
      • 2011-11-08
      • 2017-12-22
      • 2015-08-04
      • 1970-01-01
      相关资源
      最近更新 更多