《具體數學》(二)和式

遞歸式求和:

\left\{\begin{matrix} C_{0}=C_{1}=0& n=1||n=0& \\ C_{n}=n+1+(\sum_{k=0}^{n-1}C_{k})*\frac{2}{n}& n>1&; \end{matrix}\right.

像這種類型的遞歸式,要快速求出C_{1003}的值,用暴力求的方法,是要算很久的。

所以來化簡一下2式:

f1:

nC_{n}=n^{_{2}}+n+2\sum_{k=0}^{n-1}C_{k} ,n>1

用n-1代替n,則f2:

(n-1)C_{n-1}=(n-1)^{_{2}}+(n-1)+2\sum_{k=0}^{n-2}C_{k} ,n-1>1

f1-f2:

nC_{n}-(n-1)C_{n-1}=2n+2C_{n-1} , n>2

這樣一來,原式就化簡成一個簡單的遞歸式了,即\left\{\begin{matrix} C_{0}=C_{1}=0,C_{2}=3 & n=1||n=0\\ nC_{n}=2n+(n+1)C_{n-1} , n>2 & n>2 \end{matrix}\right.;

問題再一次來了,怎麼求解這個遞歸式呢?

a_{n}=n,b_{n}=n+1,c_{n}=2n,即a_{n}C_{n}=c_{n}+b_{n}C_{n-1}

假設,存在一個s_{n}滿足s_{n-1}a_{n-1}=s_{n}*b_{n},即s_{n}a_{n}C_{n}=s_{n-1}a_{n-1}C_{n-1}+s_{n}c_{n},令S_{n}=s_{n}a_{n}C_{n},即:

S_{n}=S_{n-1}+s_{n}c_{n}     =>    S_{n}=s_{2}*a_{2}*C_{2}+\sum_{k=3}^{n}s_{k}c_{k}    =>  將S_{n}=s_{n}a_{n}C_{n}帶入前式,即:

C_{n} =\frac{1}{s_{n}*a_{n}}(\sum_{k=3}^{n}(s_{k}c_{k})+s_{2}*a_{2}*C_{2})=\frac{1}{s_{n}*a_{n}}(\sum_{k=3}^{n}(s_{k}c_{k})+s_{3}*b_{3}*C_{2}),至此,就會有一個問題了s_{n}=?,注意看s_{n}*b_{n}=s_{n-1}*a_{n-1} => s_{n}=\frac{a_{n-1}}{b_{n}}s_{n-1},在求解這個遞歸式得:s_{n}=\tfrac{a_{n-1}*a_{n-2}*...*a_{0}}{b_{n}*b_{n-1}*....*b_{1}}=\frac{(n-1)*(n-2)*...*1}{(n+1)*(n-0)*...*3}=\frac{2}{(n+1)n};所以\sum_{k=3}^{n}(s_{k}c_{k})=4\sum_{k=3}^{n}\frac{1}{k+1}

所以最後的結果是:s_{3}=\frac{2}{4*3},b_{3}=4,所以C_{n}=\frac{(n+1)}{2}(\sum_{3}^{n}(s_{k}c_{k})+\frac{2}{3})=\frac{n+1}{2}(\sum_{k=1}^{n}(s_{k}c_{k})-\frac{4}{3})C_{n}=2(n+1)\sum_{k=3}^{n}\frac{1}{k+1}-\frac{2}{3}(n+1)

再至此,就會剩下最後一個問題了\sum_{k=1}^{n}\frac{1}{k+1}是多少?

H_{n}=\sum_{k=1}^{n}\frac{1}{k},這個式子和最後出現的和式相似,事實上因爲他出現的如此頻繁,我們可以給他取一個名字調合數(小提琴絃所產生的第k個範音(harmonic)是弦長1/k處所產生的基音)。下面,求解:

\sum_{1<=k<=n}\frac{1}{k+1}=\sum _{1<=k-1<=n}\frac{1}{k}=\sum _{2<=k<=n+1}\frac{1}{k}=\sum _{1<=k<=n}\frac{1}{k}-1+\frac{1}{n+1}=H_{n}-\frac{n}{n+1}=ln(n)+0.57721566490153286060651209-\frac{n}{n+1}

 

所所以,結果是:

C_{n}=2(n+1)H_{n}-\frac{8}{3}n-\frac{2}{3} ,n>1

說實話,這篇文章也算不上原創,可以說全是書上的內容《具體數學  計算機科學基礎(第二版)》

歡迎指出錯誤!!!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章