T(n) = T(n-1) + 10/n [关闭]

Posted

技术标签:

【中文标题】T(n) = T(n-1) + 10/n [关闭]【英文标题】:T(n) = T(n-1) + 10/n [closed] 【发布时间】: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) + ??

【问题讨论】:

我投票结束这个问题,因为这是关于数学而不是编程。 【参考方案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)

【讨论】:

以上是关于T(n) = T(n-1) + 10/n [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Aiiage Camp Day3 B Bipartite

1312第一位数字(推理)

递归的复杂度:T(n) = T(n-1) + T(n-2) + C

关系的时间复杂度 T(n) = T(n-1) + T(n/2) + n

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

如何求解:T(n) = T(n - 1) + n