生成函数初学
定义
生成函数:指无穷级数与函数的对应,其中无穷级数表示一个无限的数列的和。
我们定义一个生成函数 \(f(x)\) 是收敛的,当且仅当 \(f(x)\) 随着 \(x\) 的定向变化趋向于一个确定的极限值。如令 \(f(x)=\dfrac{1}{x}\),当 \(x\rightarrow \infty\) 时,\(f(x)=\dfrac{1}{x}\rightarrow 0\),为定值。
同理,与其相反地,我们定义一个生成函数 \(g(x)\) 是发散的,当且仅当 \(g(x)\) 随着 \(x\) 的定向变化趋向于无穷,即 \(g(x)\) 的值没有极限。如 \(g(x)=2x\),\(x\rightarrow \infty\) 时,\(g(x)=2x\rightarrow \infty\)。
生成函数的主要应用是求排列组合。
下面以一道例题引入。
有 \(n\) 种物品可供选择,其中第 \(i\) 种物品有 \(c_i\) 个,现在要从中选取 \(k\) 个物品,求方案数。
我们用 \(x_i\) 表示第 \(i\) 个物品。对于第 \(i\) 种物品构造一个式子,形如:
\[{x_i}^0+{x_i}^1+{x_i}^2+\cdots+{x_i}^{c_i} \]也即:
\[1+{x_i}+{x_i}^2+\cdots+{x_i}^{c_i} \]第 \(i\) 个式子有 \(c_i+1\) 项,其中式子的第 \(j\) 项表示第 \(i\) 种物品 \(x_i\) 取了 \(j-1\) 个。
我们将取物品的过程看作对每一种物品分开考虑选取再合起来,那么可以将由上述方式得到的 \(n\) 个式子相乘,得到
\[(1+{x_1}+\cdots+{x_1}^{c_1})(1+{x_2}+\cdots+{x_2}^{c_2})\cdots(1+{x_n}+\cdots+{x_n}^{c_n}) \]因为只考虑选取物品的个数,不考虑选取的物品具体是哪一种,所以所有的角标可以去除,即
\[(1+x+\cdots+x^{c_1})(1+x+\cdots+x^{c_2})\cdots(1+x+\cdots+x^{c_n}) \]将表达式展开,不难得出 \(x^k\) 项前的系数即为答案。
普通型生成函数
普通型生成函数的一般形式:
\[\begin{aligned} f(x)&=\sum\limits_{i=0}^\infty a_ix^i \\ &=a_0+a_1x+a_2x^2+a_3x^3+\cdots+a_nx^n \end{aligned} \]令 \(a_i=1\),就得到了最常见的普通型生成函数:
\[\begin{aligned} f(x)&=\sum\limits_{i=0}^\infty x^i \\ &=1+x+x^2+x^3+\cdots \end{aligned} \]令 \(S=f(x)\),则 \(xS=x+x^2+x^3+x^4\cdots\)
两式相减,得到 \((x-1)S=-1\),故 \(f(x)=S=-\dfrac{1}{x-1}=\dfrac{1}{1-x}\)。
考虑在最常见的普通型生成函数做一些变形。
- \(x\rightarrow -x\),\(f(x)=\sum\limits_{i=0}^\infty {(-1)^ix^i}=\dfrac{1}{1+x}\);
- \(x\rightarrow 2x\),\(f(x)=\sum\limits_{i=0}^\infty {2^ix^i}=\dfrac{1}{1-2x}\);
插入:牛顿二项式定理
对任意实数 \(a,b,n\),有
\[(a+b)^n=\sum\limits_{i=0}^n \dbinom{n}{i}a^ib^{m-i} \]一般来说,使用时通常有 \(b=1\),那么有
\[(x+1)^n=\sum\limits_{i=0}^n\dbinom{n}{i}x^i \]拓展一下,可以得出
\[\dfrac{1}{(1-x)^n}=\sum\limits_{i=0}^\infty \dbinom{n+i-1}{i}x^i \]P2000 拯救世界
将题意中的十条限制用式子表示出来,即
\[\begin{cases} 1+x^6+x^{12}+\cdots \\1+x+x^{2}+\cdots+x^9 \\1+x+x^{2}+\cdots+x^5 \\1+x^4+x^{8}+\cdots \\1+x+x^{2}+\cdots+x^7 \\1+x^2+x^4+\cdots \\1+x \\1+x^8+x^{16}+\cdots \\1+x^{10}+x^{20}+\cdots \\1+x+x^2+x^3 \end{cases} \]这十个式子都可以用等比数列转化形式,相乘可得
\[\tfrac{1}{1-x^6}\times\tfrac{1-x^{10}}{1-x}\times\tfrac{1-x^6}{1-x}\times\tfrac{1}{1-x^4}\times\tfrac{1-x^8}{1-x}\times\tfrac{1}{1-x^2}\times\tfrac{1-x^2}{1-x}\times\tfrac{1}{1-x^8}\times\tfrac{1}{1-x^{10}}\times\tfrac{1-x^4}{1-x} \]分子部分每一个式子在分母部分都有相同的式子,可以直接约去,最后分母还剩下 \((1-x)^5\)。
所以相当于我们要求 \(\dfrac{1}{(1-x)^5}\) 展开后第 \(n\) 项的系数,即 \(ans=\dbinom{5-1}{n+5-1}=\dbinom{4}{n+4}\)。
指数型生成函数(泰勒级数)
指数型生成函数的一般形式:
\[\begin{aligned} f(x)&=\sum\limits_{i=0}^\infty a_i\tfrac{x^i}{i!} \\ &=a_0+a_1x+a_2\tfrac{x^2}{2!}+a_3\tfrac{x^3}{3!}+\cdots+a_n\tfrac{x^n}{n!} \end{aligned} \]同样令 \(a_i=1\),可以得到最简单的指数型生成函数,记为 \(e^x\)。
\[\begin{aligned} e^x&=\sum\limits_{i=0}^\infty\tfrac{x^i}{i!} \\ &=1+x+\tfrac{x^2}{2!}+\cdots+\tfrac{x^n}{n!} \end{aligned} \]拓展一下,不难得出
- \(e^{-x}=1-x+\tfrac{x^2}{2!}-\tfrac{x^3}{3!}+\tfrac{x^4}{4!}\cdots\)
- \(\dfrac{e^x+e^{-x}}{2}=1+\tfrac{x^2}{2!}+\tfrac{x^4}{4!}+\tfrac{x^6}{6!}+\cdots\)
- \(\dfrac{e^x-e^{-x}}{2}=x+\tfrac{x^3}{3!}+\tfrac{x^5}{5!}+\cdots\)
考虑这样一个问题。
给定 \(n\) 个集合,现在要分别从集合 \(1,2,\cdots n\) 中分别取出 \(k_i\) 个数。记 \(K=\sum k_i\),将选出的 \(K\) 个数构成排列,求方案数。
同样对每一个集合用一个式子表示,但每一个集合中选取的数要求无序。故对于第 \(i\) 个集合,用以下式子表示:
\[\tfrac{x_i^0}{0!}+\tfrac{x_i^1}{1!}+\tfrac{x_i^2}{2!}+\cdots+\tfrac{x_i^{k_i}}{{k_i}!} \]也即
\[1+x_i+\tfrac{x_i^2}{2!}+\cdots+\tfrac{x_i^{k_i}}{{k_i}!} \]同样做乘法,取第 \(K\) 项的系数,但这只是选数的方案数,还需乘上 \(K!\) 得到排列数。
hdu - 2065
A
,C
两个字符只能出现偶数次,生成函数为 \(\dfrac{e^x+e^{-x}}{2}\)。
B
,D
两个字符只能出现偶数次,生成函数为 \(e^x\)。
乘起来就是
\[\begin{aligned} & e^x\times e^x\times \dfrac{e^x+e^{-x}}{2}\times \dfrac{e^x+e^{-x}}{2} \\&=\dfrac{e^{4x}+2e^{2x}+1}{4} \end{aligned} \]然后计算第 \(n\) 项的系数,为 \(\dfrac{4^n+2\times 2^n}{4}=4^{n-1}+2^{n-1}\)
练习
标签:infty,函数,dfrac,生成,cdots,初学,tfrac,times From: https://www.cnblogs.com/ereoth/p/17880562.html