其實這個知識點早就知道了。
但由於我一直都沒有把它鑽研透徹,而且還總是又忘記掉,因此常常要去網上重新搜尋學習一遍。
於是我就想,不如乾脆自己寫一篇部落格,既能鞏固現在的記憶,也方便往後的複習。
考慮斐波那契數列的生成函式直接寫出來就長這個樣子:
\[f(x)=1x^1+1x^2+2x^3+3x^4+5x^5+8x^6+...
\]根據斐波那契的遞推公式\(fib(x)=fib(x-1)+fib(x-2)\),其實轉化成多項式的形式,我們列出\(xf(x)\)和\(x^2f(x)\):
\[\begin
f(x)&=1x^1+1x^2+2x^3+3x^4+5x^5+...\\
xf(x)&=1x^2+1x^3+2x^4+3x^5+5x^6+...\\
x^2f(x)&=1x^3+1x^4+2x^5+3x^6+5x^7+...
\end
\]斜著看,就會發現,\(f(x)=x+xf(x)+x^2f(x)\)。
通過簡單移項,可以得出\(f(x)=\frac x\)。
這就是斐波那契數列的生成函式了。
其實上面的過程算是簡單而基礎的,接下來才是此篇部落格的核心內容。
考慮我們把\(1-x-x^2\)這一項強行因式分解掉,得到:
\[1-x-x^2=(1-\frac2x)(1-\frac2x)
\]方便起見,令\(a=\frac2,b=\frac2\),也就是說:
\[f(x)=\frac
\]現在我們要把它裂開,得到\(\frac\)和\(\frac\)兩項。
列出方程:
\[\begina+b=1,\\a\times b+b\times a=0\end\rightarrow\begina=\frac,\\b=-\frac\end
\]代回原式得到:
\[f(x)=\fracx}-\fracx}
\]當分母中變成乙個關於\(x\)的一次式的時候,把\(ax\)和\(bx\)各自視為乙個整體我們就可以反向利用等比數列求和公式,就有:
\[\fracx}=\frac ax(1+ax+a^2x^2+...)=\fracx+\fracx^2+\fracx^3+...\\
\fracx}=\frac bx(1+bx+b^2x^2+...)=\fracx+\fracx^2+\fracx^3+...
\]因此就有:
\[f(x)=\fracx+\fracx+\fracx+...=\sum_^\fracx^i
\]把\(a=\frac2,b=\frac2\)代入,根據第\(i\)項的係數\(\frac\),就得到了我們耳熟能詳的斐波那契通項公式:
\[fib(i)=\frac1((\frac2)^i-(\frac2)^i)
\]斐波那契通項公式的推導應該還可以用到更一般的形如\(\frac x\)的生成函式上。
這裡給一道例題:【洛谷4451】[國家集訓隊] 整數的lqp拆分。
數學 3 生成函式
生成函式是乙個比較複雜且廣泛的數學知識點,應當重點學習 首先給出一些運算公式,方便以後學習使用 texttt begin alpha f z beta g z sum alpha f n beta g n z n z mg z sum ng z n m geq0 fracz sum g z n m ...
MD5生成函式
souce if you know,please tell me.thanks using system using system.collections.generic using system.componentmodel using system.data using system.drawi...
清華集訓2017 生成樹計數 生成函式
bzoj5119 考慮任一長度為 n 2 的序列,序列中每個數權值為 1,n 這個序列 prufer 序列 唯一對應一棵形態確定的 n 個節點的樹,反之亦然,即樹和 prufer 序列是雙射關係。那麼可以將問題轉化為列舉 prufer 序列 beginans sum d i n 2 frac pro...