概念
序列的母函数(生成函数)是一种形式幂级数。其每一项的系数可以提供关于这个序列的信息,使用母函数解决问题。
如:序列 \(a\) 的生成函数为 \(G(x)=\sum\limits_{i=1}^{n}a_if_i(x)\)。其中 \(f_i(x)\) 是无实际意义的,具体取值看题目要求。但有一些一般取值。
一般生成函数
令 \(f_k(x)=x^k\),我们得到了一般形式的生成函数。
例题1:
有 \(n\) 种物品,第 \(i\) 种物品价值 \(v_i\) 有 \(num_i\) 个,问有多少种方案可以选若干物品价值和为 \(k\)。
使用一般生成函数解决。对每个物品构造母函数。第 \(i\) 个物品的母函数 \(G(i)=1+x_{v_i}+x_{2v_i}+\cdots +x_{num_iv_i}\)。\(x^k\) 表示这一种物品选了总价值为 \(k\) 的东西,用加法原理分离。相乘得到 \(\prod\limits_{i=1}^{n}G(i)\)。最终 \(x^k\) 的系数即为答案。
例题2:
有 \(n\) 种物品,第 \(i\) 种物品价值 \(v_i\) 有 \(num_i\) 个,问可以组合出多少种不同的价值。
使用一般生成函数解决。同上,最终项数即为答案。
蠢货板子
懒了。
特殊生成函数
叉义叉的博客就给出了一种:
\(f_i(x)=\frac{x^k}{k!}\)。
对此类生成函数求导有:\(G(x)=G'(x)\)