生成函数学习笔记

对于数列\(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\)即可

posted @ 2023-08-26 16:16  傻阙的缺  阅读(46)  评论(0)    收藏  举报