母函数
母函数
概念构建
幂级数型母函数
对于序列 \(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\) 的母函数。
牛顿广义二项式定理:
其中 \(\alpha\choose 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\):有无限个红色和蓝色的球,如果从中选出 \(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\)
练 \(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\) 各出现一次的数的个数。
解:
构造母函数
故答案为 \(4^n-3^{n+1}+3\times 2^n-1\)
习题
[MtOI2019]幻想乡数学竞赛
比较模板的母函数求通项公式,需要用到光速幂(还有亿点点卡常)。