7.用生成函数求解下列递归方程 f(n)=2f(n/2)+cn n>1 f(1)=0 n=1
递归方程:
\[\begin{cases}
f(n)=2f(n/2)+c\cdot &n>1\\\\
f(1)=0 &n=1
\end{cases}
\]
换元:
\[\begin{array}[lcl]
s令\quad k=2^n,f(n)=f(2^k)=h(k)\\\\\\
则\quad h(k)=2h(k-1)+2^k \quad\quad\;\\\\\\
故递归方程变为:\begin{cases}
h(k)=2h(k-1)+2^k &k>0\\\\
h(0)=0 &k=0
\end{cases}
\end{array}
\]
构造生产函数求解:
\[\begin{array}[lcl]
sG(x) =\sum_{k=0}^{+\infty}\left[h(k)\cdot x^k\right] \qquad\qquad\qquad (1)\\\\\\
2x\cdot G(x) =\sum_{k=0}^{+\infty}\left[2h(k)\cdot x^{k+1}\right] \qquad\;\;\,(2)\\\\\\
(1)-(2)得:\\\\\\
(1-2x)\cdot G(x)=h(0)+\sum_{k=0}^{+\infty}\left\{\left[h\left(k+1\right)-2h\left(k\right)\right]\cdot x^{k+1}\right\}\\\\\\
\qquad\qquad\qquad\;\;\,=h(0)+C\cdot \sum_{k=0}^{+\infty}(2^{k+1}\cdot x^{k+1})\\\\\\
\qquad\qquad\qquad\;\;\,=h(0)+C\cdot \left(\frac{2x}{1-2x}\right)\\\\\\
\therefore G(x)=\frac{h(0)}{1-2x}+C\cdot \left[\frac{1}{\left(1-2x\right)^2}-\frac{1}{1-2x}\right]\\\\\\
\because h(0)=f(0)=0\\\\\\
\therefore G(x)=C\cdot \sum_{k=0}^{+\infty}\left[k\cdot(2x)^k\right]\\\\\\\qquad\quad\;\,=
\sum_{k=0}^{+\infty}\left[c\cdot k\cdot (2x)^k\right]\\\\\\
\therefore h(k)=C \cdot k \cdot 2^k\\\\\\
又\because n=2^k
\therefore f(n)=c\cdot nlog_2n
\end{array}
\]