生成函数学习笔记
对于数列\(a_0,a_1...,\),我们定义它的普通生成函数为\(f(x)=a_0+a_1x+a_2x^2+...=\sum\limits_{n=0}^{\infty}a_nx^n\)
例题:有若干个物品\(l_1,l_2,l_3,...,l_m\),每个物品都有任意多件,求取\(n\)件物品的总方案数。
考虑\(m\)个\((1+x+x^2+...)\)多项式相乘
\[(1+x+x^2+...)\times(1+x+x^2+x^3+...)\times...\times(1+x+x^2+...)
\]
其中第\(i\)个多项式的\(x^j\)表示第\(i\)个物品选\(j\)个,这\(m\)个多项式相乘后,必然是:
\[a_0+a_1x+a_2x^2...
\]
其中\(a_q\)表示取\(q\)件物品的方案数,所以求出\(a_n\)即可
怎么求呢?
因为\((1+x+x^2+...)\)是等比数列,我们考虑化简:
令\(S=1+x+x^2+x^3+...\),则\(xS=x+x^2+x^3+x^4+...\)
因为有无限项,所以\((1-x)S=1\),即\(S= \dfrac{1}{1-x}\)
\(m\)项相乘为\(\dfrac{1}{(1-x)^m}=(1-x)^{-m}\)
考虑广义二项式定理,则原式
又一个例题:
求有多少种不同的方案将\(n\)分解成若干个正整数之和
考虑\(x\)代表\(1\),则可以考虑多项式相乘:
\((1+x+x^2+...)\times(1+x^2+x^4+...)\times(1+x^3+x^6+...)\times(1+x^4+x^8+...)\times...\)
第\(i\)个多项式的第\(j\)项表示第\(i\)个数取\(j-1\)次,计算出多项式的积后,每一项必然形如\(a_ix^i\),表示将\(i\)分解成若干个正整数之和的方案数,求出\(a_n\)即可
                    
                
                
            
        
浙公网安备 33010602011771号