指數型生成函數 及 多項式求ln


指數型生成函數

我們知道普通型生成函數解決的是組合問題,而指數型生成函數解決的是排列問題

對於數列\(\{a_n\}\),我們定義其指數型生成函數為

\[G(x) = a_0 + a_1x + a_2\frac{x^2}{2!} + a_3\frac{x^3}{3!} + a_4\frac{x^4}{4!} + \dots = \sum\limits_{i = 0}^{\infty} a_i\frac{x^i}{i!} \]

那么對於兩個數列\(\{a_n\}\)\(\{b_n\}\),其對應成生成函數為

\[G(x) = \sum\limits_{i = 0}^{\infty} a_i\frac{x^i}{i!} \]

\[F(x) = \sum\limits_{i = 0}^{\infty} b_i\frac{x^i}{i!} \]

那么

\[\begin{aligned} F(x) \centerdot G(x) &= (\sum\limits_{i = 0}^{\infty} a_i \frac{x^i}{i!})(\sum\limits_{i = 0}^{\infty} b_i \frac{x^i}{i!}) \\ &= \sum\limits_{n = 0}^{\infty} (\sum\limits_{i = 0}^{\infty} \frac{a_ix^i}{i!} \centerdot \frac{b_{n - i}x^{n - i}}{(n - i)!})x^n \\ &= \sum\limits_{n = 0}^{\infty} (\sum\limits_{i = 0}^{\infty} {n \choose i} a_i b_{n - i}) \frac{x^n}{n!} \end{aligned} \]

由此可見兩個指數型生成函數相乘,如果\(x^i\)的系數表示的是選擇\(i\)個該物品的方案數,那么\(F(x) \centerdot G(x)\)\(x^i\)的系數表示的就是從\(a\)\(b\)中選出\(i\)個物品的排列數

一般地,對於多重集合\(M\),從中選取\(k\)個元素的排列數,若限定元素\(a_i\)出現的次數集合為\(M_i\),則該組合數序列的生成函數為

\[\prod\limits_{i = 1}^{n}(\sum\limits_{m \in M_i} \frac{x^m}{m!}) \]

泰勒展開式

通常,在指數型生成函數的使用過程中,一般都會用到泰勒展開式:

\[e^{x} = \sum\limits_{i = 0}^{\infty} \frac{x^i}{i!} = 1 + x + \frac{x^2}{2!} + \frac{x^3}{3!} + \frac{x^4}{4!} + \dots + \frac{x^n}{n!} + \dots \]

擴展的一些式子:

\[\frac{e^x + e^{-x}}{2} = \sum\limits_{i = 0}^{\infty} \frac{x^{2i}}{(2i)!} \]

\[\frac{e^x - e^{-x}}{2} = \sum\limits_{i = 0}^{\infty} \frac{x^{2i + 1}}{(2i + 1)!} \]

還有一些比較有用的公式:

\[\frac{1}{1 - x} = \sum\limits_{i = 0}^{\infty} x^i \]

\[ln(1 + x) = \sum\limits_{i = 0}^{\infty} (-1)^{i} \frac{x^{i + 1}}{i + 1} \]

\[(1 + x)^{a} = \sum\limits_{i = 0}^{\infty} a^{\underline{i}}\frac{x^i}{i!} \]

\[sin(x) = \sum\limits_{i = 0}^{\infty} (-1)^{i}\frac{x^{2i + 1}}{(2i + 1)!} \]

\[cos(x) = \sum\limits_{i = 0}^{\infty} (-1)^{i}\frac{x^{2i}}{(2i)!} \]

多項式求\(ln\)

意義?
我們要求將一個集合大小為\(n\)的方案數,逆向思考
假如我們求出了生成函數\(F(x)\),其中\(x^i\)項的系數表示集合大小為\(i\)的方案數
我們構造一個函數

\[G(x) = \frac{F(x)}{1!} + \frac{F^2(x)}{2!} + \frac{F^3(x)}{3!} + \dots \]

觀察式子發現\(G(x)\)\(x^i\)的系數實際上就是選出若干集合大小剛好為\(i\)的方案數
假設這個方案數很好求,我們能很快構造出\(G(x)\),我們現在要求\(F(x)\)的話就要使用多項式求\(ln\)
觀察

\[G(x) = \frac{F(x)}{1!} + \frac{F^2(x)}{2!} + \frac{F^3(x)}{3!} + \dots = e^{F(x)} \]

\[F(x) = lnG(x) \]

求法

假如我們要求\(G(x) = lnF(x)\)
求導得

\[G'(x) = \frac{F'(x)}{F(x)} \]

\[G(x) = \int \frac{F'(x)}{F(x)} dx \]

所以我們只需多項式求導,多項式求逆,多項式乘法,多項式積分
復雜度\(O(nlogn)\)

例題BZOJ3456城市規划


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM