初學生成函式(二) 生成函式與斐波那契數列

2022-05-14 13:41:53 字數 1428 閱讀 8667

其實這個知識點早就知道了。

但由於我一直都沒有把它鑽研透徹,而且還總是又忘記掉,因此常常要去網上重新搜尋學習一遍。

於是我就想,不如乾脆自己寫一篇部落格,既能鞏固現在的記憶,也方便往後的複習。

考慮斐波那契數列的生成函式直接寫出來就長這個樣子:

\[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...