算法导论A Problems 答案

A-1

a

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

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

上界:

\[\sum_{n=1}^k k^r\le \int_{1}^{n+1} x^r dx=\left.\dfrac{x^{r+1}}{r+1}\right\rvert_{1}^{n+1}=\dfrac{(n+1)^{r+1}}{r+1}-1\]

下界:

\[\sum_{n=1}^k k^r\ge \int_{0}^{n} x^r dx=\left.\dfrac{x^{r+1}}{r+1}\right\rvert_{0}^{n}=\dfrac{n^{r+1}}{r+1}\]

最终可以得到:

\[\dfrac{n^{r+1}}{r+1}\le\sum_{n=1}^k k^r\le \dfrac{(n+1)^{r+1}}{r+1}-1\]

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

\[\sum_{n=1}^k k^r=\Theta(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)}\)