母函数

母函数

概念构建

幂级数型母函数

对于序列 \(a_0,a_1,a_2\dots ,a_n\dots\),构建函数:

\(F(x)=a_0+a_1\times x^{1}+a_2\times x^2+\dots + a_n\times x^n+\dots\)

则称 \(F(x)\) 是序列 \(a_1,a_2\dots\) 的母函数(生成函数)。

比如,\(F(x) = (1+x)^n= {n\choose 0} + {n\choose 1} + {n\choose 2} + \dots {n\choose n}\)

\(F(x)\) 是序列 \(\{{n\choose 0},{n\choose 1},{n\choose 2}\dots {n\choose n}\}\) 的母函数。

\(1\):(无穷递缩等比数列求和公式

\(1,1,1,1\dots 1,\dots\) 的母函数。

解:

\(F(x)=1+x^1+x^2+x^3+\dots x^n = \frac{1}{1-x}\)

\(1\):求 \(1,0,1,0,1,0\dots\) 的母函数。


牛顿广义二项式定理:

\[(x+y)^{\alpha}=\sum_{n=0}^\infty{\alpha \choose n}x^{n}y^{\alpha-n} \]

其中 \(\alpha\choose n\) 为牛顿二项式系数:

\[{a\choose n}=\frac{\alpha(\alpha-1) \ldots(\alpha-n+1)}{n!} \]


\(2\):求 \(a_0,a_1,a_2,\dots a_n\dots\) 的母函数,\(a_n\)\(k>0\) 时的无限重集的 \(n\) 组合数。

具体地,\(a_n={n+k-1\choose n}\)

解:\(F(x)=(1-x)^{-k}\)

\(2\):确定平方数列 \(0, 1, 4, \dots n^2\) 的母函数。

指数型母函数

对于数列 \(a_0,a_1,a_2\dots a_n\),则函数:

\(F(x)=\sum_{n=0}^{\infty}{a_n\times \frac{x^n}{n!}}\)

称为数列 \({a_n}\) 的指数型母函数。

\(1\):数列 \(1,1,1,1,1\dots\) 的指数型母函数。

解:(麦克劳林公式)

\(F(x)=1+\frac{x}{1!}+\frac{x^2}{2!}+\dots +\frac{x^n}{n!}+\dots=e^x\)

\(2\):数列 \(1, -1, 1, -1, 1, -1, 1\dots\) 的母函数。

\(F(x)=1-\frac{x}{1!}+\frac{x^2}{2!}-\dots + (-1)^n\times \frac{x^n}{n!}+\dots = e^{-x}\)

\(3\):数列 \(1,a, a^2, a^3\dots\) 的指数型母函数。

解:

\(F(x)=\sum_{n=0}^{\infty}{a^n\times \frac{x^n}{n!}}=e^{ax}\)

\(3\):数列 \(a, a^2, a^3\dots a^n\dots\) 的母函数。

应用

整数拆分问题

母函数能解决的一大问题就是整数拆分问题。

\(1\):共有 \(1\) 克,\(2\) 克,\(3\) 克的砝码各一枚,问能称出哪几种重量,各自有几种方案。

\(2\):一口袋中有 \(5\) 个红球,\(3\) 个黄球,绿、白、黑球可以任意多的提供。每次从中取 \(3\) 个,问有多少种不同取法。

\(3\):共有 \(1\) 克的砝码 \(3\) 枚,\(2\) 克的砝码 \(4\) 枚,\(4\) 克的 \(2\) 枚,问能称出哪几种重量,各自有几种方案。


用生成函数求解计数问题通常分为三步:

  1. 构造生成函数
  2. 化简生成函数
  3. 展开,得到指定项的系数

\(1\):有无限个红色和蓝色的球,如果从中选出 \(n\) 个球,选出的球中须有偶数个红球,求选择的方案数 \(a_n\)

求解递归式通项公式

\(1\)

求满足 \(a_n=2\times a_{n-1} + 1\)\(a_n\) 的通项公式。

构造 \(F(x)=0+a_1 \times x+a_2 \times x^{2}+\dots +a_n\times x^n\)

\[\begin{aligned} F(x)-2x\times F(x)&=(a_2-2\times a_1)x^2+(a_3-2\times a_2)x^3+\dots (a_n-2\times a_{n-1})x^n+\dots\\ (1-2x)F(x)&=x^2+x^3+\dots x^n\dots\\ F(x)&=\frac{x}{(1-x)\times (1-2x)}\\ F(x)&=\frac{1}{1-2x}-\frac{1}{1-x}\\ F(x)&=2+2x^2+4x^2+\dots2^{n}x^{n}-1-x-x^2-x^3-\dots x^n\\ a_n&=2^n-1 \end{aligned} \]

\(1\)

已知 \(a_0=-1,a_1=1,a_n=2a_{n-1}+3a_{n-2}+3^n\)

\(a_n\) 的通项公式。

指数型母函数的应用

\(1\):若有 \(8\) 个元素,其中 \(a_1\) 重复了 \(3\) 次,\(a_2\) 中重复了两次,\(a_3\) 重复了 \(3\) 次,求从中取 \(4\) 个元素所产生的排列总数。

解:

构造母函数 \(F(x)=(1+\frac{x}{1!}+\frac{x^2}{2!}+\frac{x^3}{3!})\times (1+\frac{x}{1!}+\frac{x^2}{2!})\times (1+\frac{x}{1!}+\frac{x^2}{2!}+\frac{x^3}{3!})\)

\(\to \sum{b_i\times \frac{x^i}{i!}}\)

\(b_i=\sum{\frac{i!}{m_1!m_2!\dots m_k!}}\)

其中 \(b_n\) 就是从中取 \(4\) 个元素所产生的排列数。

\(2\):求 \(n\) 位四进制数 \(1, 2, 3\) 各出现一次的数的个数。

解:

构造母函数

\[\begin{aligned} F(x)&=(\frac{x}{1!}+\frac{x^2}{2!}+\dots)^3(1+\frac{x}{1!}+\frac{x^2}{2!}+\dots)\\ &=(e^x-1)^3\times e^x \\ &=e^{4x}-3\times e^{3x}+3\times e^{2x}-e^x \\ &=\sum_{n=0}^{\infty}{4^n\times \frac{x}{n!}}-\sum_{n=0}^{\infty}{3\times 3^n\times \frac{x}{n!}}+\sum_{n=0}^{\infty}{3\times 2^n\times \frac{x}{n!}}-{\sum_{n=0}^{\infty}{\frac{x}{n!}}} \\ &=\sum_{n=0}^{\infty}{(4^n-3^{n+1}+3\times 2^n-1)\frac{x^n}{n!}} \end{aligned} \]

故答案为 \(4^n-3^{n+1}+3\times 2^n-1\)

习题

[MtOI2019]幻想乡数学竞赛

比较模板的母函数求通项公式,需要用到光速幂(还有亿点点卡常)。

posted @ 2022-07-17 10:52  mklzc  阅读(193)  评论(0编辑  收藏  举报