算法导论A Problems 答案

A-1

a

本题做法与A-1.5完全一致。

由于$f(x)=x^r$是递增的,因此考虑使用式子$(A.18)$进行逼近。

上界:

下界:

最终可以得到:

并且有$\dfrac{n^{r+1}}{r+1}=\Omega(n^{r+1}),\dfrac{(n+1)^{r+1}}{r+1}-1=O(n^{r+1})$,因此最终有:

b

由于

$\begin{aligned}
\sum{k=1}^{n} \lg ^s k &= \sum{k=1}^{n/2} \lg ^s k + \sum{k= n/2+1}^{n} \lg ^s k\
&\ge \sum
{k=1}^{n/2} 0 + \sum_{k= n/2+1}^{n} \lg ^s (n/2)\
&=n/2\cdot\lg ^s(n/2)\
&=n/2\cdot(\lg n-1)^s\
&\ge n/2\cdot \left(\dfrac{\lg n}{2}\right)^s &(A)\
&=\dfrac{1}{2^{s+1}}\cdot n\cdot \lg^sn
\end{aligned}$

其中步骤$(A)$使用了假设$n\ge 4$。因此有$\displaystyle{\sum_{k=1}^{n} \lg ^s k =\Omega(n\lg^s n)}$。

又因为

$\begin{aligned}
\sum{k=1}^{n} \lg ^s k &\le \sum{k=1}^{n} \lg ^s n\
&=n\lg^sn
\end{aligned}$

因此有$\displaystyle{\sum{k=1}^{n} \lg ^s k =O(n\lg^s n)}$,最终有$\displaystyle{\sum{k=1}^{n} \lg ^s k =\Theta(n\lg^s n)}$。

c

与题目8-2-b类似,由于

$\begin{aligned}
\sum{k=1}^{n} k^r\lg ^s k &= \sum{k=1}^{n/2} k^r\lg ^s k + \sum{k= n/2+1}^{n} k^r\lg ^s k\
&\ge \sum
{k=1}^{n/2} 0 + \sum_{k= n/2+1}^{n} (n/2)^r\lg ^s (n/2)\
&=(n/2)^{r+1}\cdot\lg ^s(n/2)\
&=(n/2)^{r+1}\cdot(\lg n-1)^s\
&\ge (n/2)^{r+1}\cdot\left(\dfrac{\lg n}{2}\right)^s &(A)\
&=\dfrac{1}{2^{r+s+1}} \cdot n^{r+1}\cdot \lg^sn
\end{aligned}$

其中步骤$(A)$使用了假设$n\ge 4$。因此有$\displaystyle{\sum_{k=1}^{n} k^r\lg ^s k =\Omega(n^{r+1}\lg^s n)}$。

又因为

$\begin{aligned}
\sum{k=1}^{n} k^r\lg ^s k &\le \sum{k=1}^{n} n^r\lg ^s n\
&=n^{r+1}\lg^sn
\end{aligned}$

因此有$\displaystyle{\sum{k=1}^{n}k^r \lg ^s k =O(n^{r+1}\lg^s n)}$,最终有$\displaystyle{\sum{k=1}^{n}k^r \lg ^s k =\Theta(n^{r+1}\lg^s n)}$。