【问题标题】: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)。