生成函式 學習筆記
有一部分沒地方寫的組合數學,先寫這裡。
0. pre - learning
1. 上升/下降冪:
稱為 \(n\) 的下降冪。
同理:
稱為 \(n\) 的上升冪。
2. 組合數:
組合數的幾個重要公式:
對稱性:
吸收性:
遞推:
證明:不妨直接拆組合數。
也可以考慮楊輝三角。
上指標求和:
證明:
\[\sum_{i=m}^n \binom{i}{m} = \binom{m}{m} +\binom{m+1}{m}+\cdots+\binom{n}{m} \]因為 \(\binom{m}{m} = 1 = \binom{m+1}{m+1}\),所以可以用上文的遞推公式將右式的前兩項合併得到 \(\binom{m+1}{m+1}+\binom{m+1}{m} = \binom{m+2}{m+1}\)。
接著,可以將 \(\binom{m+2}{m+1}\) 和 \(\binom{m+2}{m}\) 合併得到 \(\binom{m+3}{m+1}\)。
以此類推即可。
3. (廣義)二項式定理:
我們考慮更改組合數的定義。
廣義二項式係數:
廣義二項式定理:
證明需要求導,不會。
上指標反轉:
證明:
考慮 \(n^{\underline{m}} = n(n-1)\cdots (n-m+1) = (-1)^m(-n)(-n+1)\cdots(m-n-1)=(m-n-1)^{\underline{m}}\)。等價於右式。證畢。
4. 多項式定理:
對於 \((x_1+x_2+\cdots+x_t)^n\) 的展開式,\(x_1^{n_1}x_2^{n_2}\cdots x_t^{n_t}\) 項的係數是:
證明:考慮組合意義。
先從 \(n\) 中選擇 \(n_1\) 個式子,方案數為 \(\dbinom{n}{n_1}\)。
接著,從 \(n-n_1\) 中選擇 \(n_2\) 個式子,方案數為 \(\dbinom{n-n_1}{n_2}\)。
\(\cdots\)
最後,從 \(n-n_1-n_2-\cdots-n_{t-1}\) 中選擇 \(n_t\) 個式子,方案數為 \(\dbinom{n-n_1-n_2-\cdots-n_{t-1}}{n_t}\)。
由乘法原理,方案數為 \(\dbinom{n}{n_1}\dbinom{n-n_1}{n_2}\cdots\dbinom{n-n_1-n_2-\cdots-n_{t-1}}{n_t}\)。
能夠化簡為:\(\dfrac{n!}{n_1!n_2!\cdots n_t!}\)。
證畢。
值得注意的是,這個問題等價於可重集的排列方案數。
1. 冪級數展開
由於廣義二項式定理的存在,我們可以對某些式子進行展開。以下是幾個例子:
需要記住另外幾個常見展開:
可以使用泰勒公式證明,但是 OI 中沒必要。
注:我們不關心是否收斂,因為在生成函式中,重要的是係數而非值。
2.OGF
對於數列 \(A\),其 OGF 定義為:
OFG 與無標號計數有關。
例:BZOJ3028 食物。
首先分別給出每個條件對應的生成函式。
\(0\) 或 \(1\) 個:\(1+x\)。
\(0\) 或 \(1\) 或 \(2\) 個:\(1+x+x^2\)。
\(0\) 或 \(1\) 或 \(2\) 或 \(3\) 個:\(1+x+x^2+x^3\)。
奇數個:\(\dfrac{x}{1-x^2}\)。
偶數個:\(\dfrac{1}{1-x^2}\)。
\(3\) 的倍數:\(\dfrac{1}{1-x^3}\)。
\(4\) 的倍數:\(\dfrac{1}{1-x^4}\)。
我們將這些生成函式的式子相乘,得到:
\([x^n]f(x)\) 就是選 \(n\) 個的答案。
正確性:多項式乘法等價於列舉在每一個物件中選擇了多少個。
生成函式可以用來求數列的通項公式。
引入:化簡 \(\sum_{i=0}^{\infty}(i+1)x^i\)。
設 \(S=1+2x+3x^2+\cdots\),則 \(xS=x+2x^2+3x^3+\cdots\)。
相減,得:\((1-x)S=1+x+x^2+x^3+\cdots=\dfrac{1}{1-x}\)。
解方程,得: \(S=\dfrac{1}{(1-x)^2}\)。
例:求 fib 數列的通項公式。
即求出 \(f_0=\color{orange}0\color{black},f_1=1,f_n=f_{n-2}+f_{n-1}\) 的通項公式。
依照上例子,我們設生成函式 \(f(x)=\sum_{i=0}^{\infty}f_ix^i\)。
那麼有:
所以 \(F=\dfrac{x}{1-x-x^2}\)。(封閉形式)
將這個式子進行因式分解,得到 \(\dfrac{x}{(1-\frac{1+\sqrt{5}}{2}x)(1-\frac{1-\sqrt{5}}{2})x}\)。
考慮到我們能夠計算出形如 \(\dfrac{c}{1-kx}\) 的式子的值,因此可以使用待定係數法,將封閉形式變為 \(\dfrac{A}{1-\frac{1+\sqrt{5}}{2}x}+\dfrac{B}{1-\frac{1-\sqrt{5}}{2}x}\)。
於是有:
由於 \(A+B=0\),有:
所以:
按一般方法進行展開,得:
由此,我們得到了 fib 數列的通項公式:
4.EGF
定義一個數列 \(A\) 的指數型生成函式 EGF 為:
EGF 一般與有標號計數有關,考慮其組合意義:
假設我們要從 \(r\) 個數中分別選擇 \(x_1,x_2,x_3\) 個排成一排,記答案為 \(a_r\)。由多項式定理,\(a_r=\dfrac{r!}{x_1!x_2!x_3!}\)。
有 \(a_r=\sum_{x_1+x_2+x_3=r}\dfrac{r!}{x_1!x_2!x_3!}\),而我們在定義 EGF 時就已經預處理好了分母,但是沒有處理分子 \(r!\)。
令 \(f(i)=\sum_{i=0}^{\infty}\dfrac{x^i}{i!}\),有 \(a_r=r!\times [x^r]f(x)\)。也就是在 OGF 的基礎上再乘以 \(r!\)。
例:用紅藍綠 \(3\) 種顏色去塗 \(1\times n\) 的棋盤,每格塗一種顏色,求使得被塗成紅色和藍色的方格數均為偶數的的塗色方法數。
不妨設 \(G(x)=(1+\dfrac{x^2}{2!}+\dfrac{x^4}{4!}\cdots)^2(1+\dfrac{x}{1!}+\dfrac{x^2}{2!}+\dfrac{x^3}{3!}+\cdots)\)。
則:
故答案為 \(\dfrac{1}{4}(3^n+2+(-1)^n)\)。