算法导论A.1 Exercises 答案

A.1-1

令$g_k(i)=O(f_k(i))$,那么根据符号$O$的定义,$\exists c_1,c_2,\dots,c_n,m_1,m_2,\dots,c_m>0,\forall n\ge m_k,0\le g_k(n)\le c_kf_k(n)$成立。

令$\displaystyle{m=\max{k=1}^n {m_k},c=\max{k=1}^n{c_k}}$。根据求和的线性性质,对于$\forall n\ge m$,如下不等式成立:

因此$\displaystyle{\sum{k=1}^n O(f_k(i))}=O\left(\sum{k=1}^n f_k(n)\right)$。

A.1-2

$\begin{aligned}
\sum{k=1}^n(2k-1)&=2\left(\sum{k=1}^nk\right) -n\
&=n(n+1)-n\
&=n^2
\end{aligned}$

A.1-3

代入$x=10,n=9$,那么有$111111111=\dfrac{10^{10}-1}{9}$。级数的第$k$项表示这个数十进制数下的第$k$位为$1$.

A.1-4

令$f(x)=\sum_{k=0}^{\infty} x^k=\dfrac{1}{1-x}$。可以发现,这个值是$f\left(-\dfrac{1}{2}\right)$。

因此,

A.1-5

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

上界:

下界:

最终可以得到:

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

A.1-6

等式$(A.11)$已有:

对以上式子两边进行求导,得到:

两边乘上$x$后得到最终答案(并且$|x|<1$):

A.1-7

上界:

其中,$(A)$的变化使用了题目A-1.5的结论。

下界:

假设前$\dfrac{n}{2}$项的值都放缩到$0$,后$\dfrac{n}{2}$项的值都放缩到$\dfrac{n}{2}\lg \dfrac{n}{2}$。

因此有:

$\star$ A.1-8

可以观察出,级数$\sum_{k=1}^n\dfrac{1}{2k-1}$与调和数的关系满足:

因此,

$\begin{aligned}
\sum{k=1}^n\dfrac{1}{2k-1}&=H_n-\dfrac{H{n/2}}{2}\
&=\ln n-\dfrac{\ln n/2}{2}+O(1)\
&=\ln n-\dfrac{\ln n-\ln 2}{2}+O(1)\
&=\dfrac{\ln n}{2} + O(1)\
&=\ln(\sqrt{n}) + O(1)
\end{aligned}$

$\star$ A.1-9

考虑使用列项相消解决,令$\dfrac{ak+b}{2^k}-\dfrac{a(k+1)+b}{2^{k+1}}=\dfrac{k-1}{2^k}$,那么通过待定系数法,可以解出来:

$a=2,b=0$

因此,

$\star$ A.1-10

不难发现,当$|x|<1$时,级数$\sum{k=1}^{\infty} 2k\cdot x^{2k}$和$\sum{k=1}^{\infty} x^{2k}$都是收敛的。

分别将两部分的计算结果相加就可以得到原级数$\sum_{k=1}^{\infty} (2k+1)\cdot x^{2k}$的答案。

$\begin{aligned}
\sum{k=1}^{\infty} x^{2k}&=\sum{k=0}^{\infty} x^{2k} -1\
&=\sum_{k=1}^{\infty} (x^2)^k - 1\
&=\dfrac{1}{1-x^2}-1
\end{aligned}$

$\begin{aligned}
\sum{k=1}^{\infty} 2k\cdot x^{2k}&=\sum{k=0}^{\infty} 2k\cdot x^{2k}\
&=2\sum_{k=0}^{\infty} k\cdot (x^2)^k\
&=\dfrac{2x^2}{(1-x^2)^2}
\end{aligned}$

因此最终有

$\star$ A.1-11

$\begin{aligned}
\prod{k=2}^n\left(1-\dfrac{1}{k^2}\right)&=\prod{k=2}^n\dfrac{k-1}{k} \cdot \dfrac{k+1}{k}\
&=\dfrac{(n-1)!\cdot (n+1)!/2}{(n!)^2}\
&=\dfrac{1}{n}\cdot (n+1)\cdot\frac{1}{2}\
&=\dfrac{n+1}{2n}
\end{aligned}$