卧薪尝胆,厚积薄发。
生成函数与特殊计数数列
Date: Thu Feb 28 08:10:36 CST 2019
In Category:
总结
生成函数:
也称为母函数,是一种形式幂级数。
一般生成函数OGF:
数列
$\{a_i\}$
对应的一般生成函数为:
$$
A(x)=\sum_{i\geqslant 0}a_ix^i
$$
生成函数可以有无穷项,一般在用生成函数作为组合计数的工具时不需要考虑其是否收敛。
一些常见的OGF:
| 数列 | OGF | 通项公式 |
| :-------------------------------------------------------- | :---------------------- | ---------------------- |
|
$1,0,0,0,0,0,0\dots$
|
$1$
|
$a_i=[i=1]$
|
|
$0,\dots,0,1,0,0,\dots$
|
$x^k$
|
$a_i=[i=k]$
|
|
$1,1,1,1,1,1,1,\dots$
|
$\frac 1{1-x}$
|
$a_i=1$
|
|
$1,2,3,4,5,6,7$
|
$\frac{1}{(1-x)^2}$
|
$a_i=i$
|
|
$1,k,k^2,k^3,\dots$
|
$\frac 1{1-kx}$
|
$a_i=k^i$
|
|
$1,-1,1,-1,1,-1,1,\dots$
|
$\frac 1{1+x}$
|
$a_i=(-1)^i$
|
|
$1,0,\dots,0,1,0,\dots,$
|
$\frac 1{1-x^k}$
|
$a_i=[i=kp],p\in N$
|
|
$\binom n0,\binom n1,\binom n2,\binom n3,\binom n4,\dots$
|
$(1+x)^n$
|
$a_i=\binom n i$
|
|
$1,1,\dots,1,0,0,0\dots$
|
$\frac{1-x^{k+1}}{1-x}$
|
$a_i=[i\leqslant k]$
|
|
$1,\binom c 1,\binom {c+1} 2,\binom {c+2} 3,\dots$
|
$\frac 1{(1-x)^c}$
|
$a_i=\binom{c+i-1}{i}$
|
|
$1,\binom{m+1}m,\binom{m+2}m,\binom{m+3}m,\dots$
|
$\frac 1{(1-x)^{m+1}}$
|
$a_i=\binom{m+i}m$
|
一些不常见的OGF:
数列 | OGF | 通项公式 |
---|---|---|
$0,1,\frac 1 2,\frac 1 3,\dots$ | $-\ln(1-x)$或$\ln{\frac 1{1-x}}$ | $a_i=\frac 1 i$ |
$0,1,-\frac 1 2,\frac 1 3,-\frac 1 4,\dots$ | $\ln(1+x)$ | $a_i=(-1)^{i+1}\frac 1 i$ |
$1,1,\frac 1 2,\frac 1 6,\frac 1{24},\dots$ | $e^x$ | $a_i=\frac 1{i!}$ |
一些OGF的运算:
$$
\begin{align}
\alpha F(x)+\beta G(x)&=\sum_{i\geqslant 0}(\alpha f_i+\beta g_i)x^i&线性变换\\
x^mF(x)&=\sum_{i\geqslant m}f_{i-m}x^i&右移\\
\frac{F(x)-\sum_{i=0}^{m-1}f_ix^i}{x^m}&=\sum_{i\geqslant 0}f_{i+m}x^i&左移\\
F(cx)&=\sum_{i\geqslant 0}f_ic^ix_i&乘常数幂\\
F'(x)&=\sum_{i\geqslant 0}(i+1)f_{i+1}x^i&求导\\
xF'(x)&=\sum_{i\geqslant 0}if_ix^i&乘i\\
\int^x_0G(t)dt&=\sum_{i\geqslant 1}\frac 1 if_{i-1}x^i&积分\\
F(x)G(x)&=\sum_{i\geqslant 0}(\sum_{j=0}^if_jg_{i-j})x^i&卷积\\
\frac 1{1-x}F(x)&=\sum_{i\geqslant 0}(\sum_{j=0}^if_j)x^i&前缀和\\
\frac{G(x)+G(-x)}2&=\sum_{i\geqslant 0}[i是偶数]g_ix^i&提取偶数项\\
\frac{G(x)-G(-x)}2&=\sum_{i\geqslant 0}[i是奇数]g_ix^i&提取奇数项
\end{align}
$$
一些使用OGF的例子:
斐波那契数:
$$
f(n)=
\begin{cases}
1,&n=1\\
f(n-1)+f(n-2),&n>1
\end{cases}
$$
那么我们可以得到一个更一般的递推式:
$f(n)=f(n-1)+f(n-2)+[n=1]$
。
设
$f(n)$
的生成函数为
$F(x)$
,那么有:
$$
\begin{align}
F(x)&=\sum_{i\geqslant 0}f_ix^i\\
&=\sum_{i\geqslant 1}f_{i-1}x^i+\sum_{i\geqslant 2}f_{i-2}x_i+x\\
&=xF(x)+x^2F(x)+x
\end{align}
$$
可以解得:
$$
F(x)=\frac x{1-x-x^2}
$$
这样我们就得到了斐波那契数的生成函数。
然后运用高中数学知识,我们可以裂项:
$$
\begin{align}
F(x)&=\frac x{(\frac{1+\sqrt5}2-x)(\frac{1-\sqrt 5}2-x)}\\
&=\frac 1{\sqrt 5}\frac {(1-\frac{1+\sqrt5}2x)-(1-\frac{1-\sqrt 5}2x)}{(1-\frac{1+\sqrt5}2x)(1-\frac{1-\sqrt 5}2x)}\\
&=\frac 1{\sqrt 5}(\frac 1{1-\frac{1+\sqrt 5}2x}-\frac 1{1-\frac{1-\sqrt 5}2x})\\
\end{align}
$$
设
$a=\frac{1+\sqrt 5}2,b=\frac{1-\sqrt 5}2$
,根据
$\frac 1{1-cx}=\sum_i c^ix^i$
可得:
$$
F(x)=\frac1{\sqrt5}(\sum_{i\geqslant 0}a^i+\sum_{i\geqslant 0}b^i)x^i
$$
于是我们就得到了斐波那契数的封闭形式:
$f_i=\frac1{\sqrt5}(a^i+b^i)$
。
施罗德数:
又称超级卡特兰数,表示从
$(0,0)$
走到
$(n,n)$
只能向上,向右或者向右上走,不能越过直线
$y=x$
的方案数,一个比较容易理解的卷积递推式为:
$$
f_i=f_{i-1}+\sum_{k=0}^{i-1}f_{k}\times f_{i-1-k}+[i=0]
$$
前边那一项意为上一次从
$(n-1,n-1)$
走过来,后面那一项意为从
$(n,n-1)$
走过来,后面那一项实际上枚举的是在哪一步最后一次走到直线
$y=x$
上,那他下一步一定只能向右走,于是走到
$(n,n-1)$
又是一个施罗德数。
这个显然可以用分治
$+FFT$
来
$O(n\log n)$
的计算,但是这样还不够优秀。
考虑施罗德数的生成函数:
$$
\begin{align}
F(x)&=\sum_{i\geqslant 0}(f_ix^i)\\
&=\sum_{i>0}f_{i-1}x^i+\sum_{i>0}(\sum_{k=0}^{i-1}f_k\times f_{i-1-k})x^i+1\\
&=x\sum_{i\geqslant0}f_ix^i+x\sum_{i\geqslant 0}(\sum_{k=0}^if_k\times f_{i-k})x^i+1\\
&=xF(x)+xF(x)^2+1
\end{align}
$$
我们可以得到施罗德数的生成函数为
$F(x)=\frac{1-x+\sqrt{1-6x+x^2}}{2x}$
,虽然这个生成函数对于求解没有什么用。
设
$G(x)=\sqrt{1-6x+x^2}$
,先考虑怎么求
$G(x)$
,首先考虑如何处理
$A(x)=B(x)^k$
,两边求导可得:
$$
\begin{align}
A(x)&=B(x)^k\\
A'(x)&=kB(x)^{k-1}B'(x)\\
A'(x)B(x)&=kB(x)^kB'(x)\\
A'(x)B(x)&=kA(x)B'(x)\\
\end{align}
$$
于是:
$$
\begin{align}
G(x)&=(1-6x+x^2)^{\frac 1 2}\\
G'(x)(1-6x+x^2)&=\frac 1 2G(x)(2x-6)\\
G'(x)(1-6x+x^2)&=G(x)(x-3)\\
\sum_{i\geqslant 0}(i+1)g_{i+1}x^i-6\sum_{i\geqslant 0}ig_ix^i+\sum_{i\geqslant0}(i-1)g_{i-1}x^i&=\sum_{i\geqslant0}g_{i-1}x^i-3\sum_{i\geqslant 0}g_ix^i\\
\sum_{i\geqslant 0}\biggl((i+1)g_{i+1}-6ig_i+(i-1)g_{i-1}-g_{i-1}+3g_i\biggr)x^i&=0\\
(i+1)g_{i+1}-6ig_i+(i-1)g_{i-1}-g_{i-1}+3g_i&=0
\end{align}
$$
于是我们可以列出一些方程:
$$
\begin{align}
&g_0=G(0)=1\\
&(0+1)g_{0+1}-6\times0\times g_0+(0-1)g_{0-1}-g_{0-1}+3g_0=0\\
&\Rightarrow g_1+3g_0=0\Rightarrow g_1=-3\\
&(1+1)g_{1+1}-6\times1\times g_1+(1-1)g_{1-1}-g_{1-1}+3g_1=0\\
&\Rightarrow 2g_2-6g_1-g_0+3g_1=0\Rightarrow g_2=-4
\end{align}
$$
其他情况:
$$
ig_i+(9-6i)g_{i-1}+(i-3)g_{i-2}=0\Rightarrow g_i=\frac{(6i-9)g_{i-1}+(3-i)g_{i-2}}i
$$
由于
$2xF(x)=1-x+G(x)$
,和上面一样我们也可以列出一些方程,具体操作就不展开了,最后可以得到:
$$
f_i=
\begin{cases}
1,&i=0\\
-\frac{g_{n+1}}2,&i>0
\end{cases}
$$
于是就可以
$O(n)$
求了。
默慈金数:
默慈金数表示在一个
$n$
个点的圆上画出彼此不相交的弦的方案数,或者从
$(0,0)$
走到
$(n,0)$
每次只能走
$(1,0),(1,-1),(1,1)$
并且不能走到
$y=0$
之下的方案数。
一个卷积递推公式为:
$$
f_i=f_{i-1}+\sum_{k=0}^{i-2}f_kf_{i-2-k}
$$
大概原因就是尝试往一个圆中新加一个点,前一项就是这个点不往外连边的方案数,后一项就是枚举他和谁连边,显然分开后两边还是一个默慈金数,但是注意上界是
$i-2$
。
还是用刚才的方法,构造出一个关于生成函数的方程,然后把根式拿出来特殊处理,然后得出一个
$G$
的递推式最后可以得到:
$$
\begin{align}
g_n&=\frac{(2n-3)g_{n-1}+(3n-9)g_{n-2}}n\\
f_n&=-\frac{g_{n+2}}2
\end{align}
$$
卡特兰数:
$$
f_n=\sum_{i=0}^{n-1}f_if_{n-1-i}
$$
生成函数为:
$$
F(x)=1+xF^2(x)\\
F(x)=\frac{1-\sqrt{1-4x}}{2x}
$$
我们可以
$\sqrt{1-4x}$
应用广义二项式定理:
$$
\sqrt{1-4x}=\sum_{i\geqslant 0}\binom{\frac 1 2}i(-4x)^i
$$
其中:
$$
\binom{\frac12}i=\frac{\frac12(\frac12-1)\dots(\frac12-i+1)}{i!}=\frac{(-1)^{n-1}1\times 3\dots\times (2i-3)}{2^ii!}=\frac{(-1)^{i-1}(2i-2)!}{2^{2i-1}i!(i-1)!}
$$
也就是说:
$$
\sqrt{1-4x}=-2\sum_{i\geqslant0}\frac{(2i-2)!}{i!(i-1)!}x^i\\
\Rightarrow F(x)=\frac{1-\sqrt{1-4x}}{2x}=\sum_{i\geqslant0}\frac{(2i)!}{(i+1)!i!}x^i
$$
显然是卡特兰数生成函数。
背包计数问题:
有一些物品,每种物品满足选取的个数满足某种条件或者体积不同,求共选取了
$n$
个物品或总体积为
$n$
的方案数。
列出每种物品的关于个数/体积的生成函数,然后把所有生成函数乘起来即可。
指数生成函数EGF:
数列
$\{a_i\}$
对应的生成函数为:
$$
A(x)=\sum_{i\geqslant 0}\frac{a_i}{i!}x^i
$$
一些常见的EGF:
数列 | EGF | 通项公式 |
---|---|---|
$1,1,1,1,1,\dots$ | $e^x$ | $a_i=1$ |
$0,1,2,3,\dots$ | $xe^x$ | $a_i=i$ |
$1,c,c^2,c^3,\dots$ | $e^{cx}$ | $a_i=x^i$ |
EGF的运算:
$$
\begin{align}
\alpha A(x)+\beta B(x)&=\sum_{i\geqslant 0}(\alpha a_i+\beta b_i)\frac{x^i}{i!}&线性变换\\
x^mF(x)&=\sum_{i\geqslant 0}[i\geqslant m]n^{\underline m}f_{i-m}\frac{x^i}{i!}\\
\frac{F(x)-\sum_{i=0}^{m-1}f_ix^i}{x^m}&=\sum_{i\geqslant 0}\frac1{(n+m)^{\underline m}}f_{n+m}\frac{x^n}{n!}\\
F(cx)&=\sum_{i\geqslant 0}c^if_i\frac{x^i}{i!}&乘常数幂\\
F'(x)&=\sum_{i\geqslant 0}f_{n+1}\frac{x^n}{x!}&求导/左移\\
\int_0^xF(t)\text dt&=\sum_{i>0}f_{n-1}\frac{x^n}{n!}&积分/右移\\
F(x)G(x)&=\sum_{i\geqslant 0}\sum_{j=0}^i\Bigl(\binom ijf_ig_{i-j}\Bigr)\frac{x^n}{n!}&二项卷积
\end{align}
$$
一些使用EGF的例子:
一个常见操作:一个集合
$S$
是由组合对象
$A$
组成的,那么由于集合的元素间是无序的,因此
$$
S=\sum_{i\geqslant0}\frac{A^i}{i!}=e^A
$$
贝尔数:
贝尔数
$B(n)$
,把大小为
$n$
的集合划分成若干非空不相交子集的方案数。
枚举第一个元素所在的自己大小
$i$
,可以得到:
$$
B(n)=[n=0]+\sum_{i=1}^n\binom{n-1}{i-1}B(n-i)
$$
于是有:
$$
F(x)=1+\int_0^xe^tF(t)\text dt
$$
两边求导:
$$
\begin{align}
F'(x)&=e^xF(x)\\
\frac{\text dF}{\text dx}&=e^xF(x)\\
\frac{\text dF}F&=e^x\text dx\\
\int\frac{\text dF}F&=\int e^x\text dx=e^x+C\\
\because&\ \text d(\ln x)=\frac{\text dx}x\\
\therefore&\ \ln(F)=e^x+C\\
F&=e^{e^x+C}\\
把F(0)&=1代入得:\\
F(x)&=e^{e^x-1}
\end{align}
$$
这个也可以这样理解:
$g(x)=e^x-1$
表示的是
$n$
个数分成一个集合的方案数,因为
$a_i=[i\ne0]$
,那么
$g^c(x)$
就是划分成
$c$
个集合的生成函数,由于
$c$
个集合互不区分因此还要乘上
$\frac1{i!}$
,那么有:
$$
B(x)=\sum_{i\geqslant 0}\frac{g^i(x)}{i!}=e^{e^x-1}
$$
EGF与无向图/无向连通图:
设
$G(x)$
是简单无向图的
$EGF$
,我们可以枚举每条边存不存在:
$$
G(x)=\sum_{i\geqslant 0}2^{\binom i2}\frac{x^i}{i!}
$$
设
$C$
是简单无向连通图的
$EGF$
,假如说他的生成函数是:
$$
C(x)=\sum_{i\geqslant 1}c_n\frac{x^n}{n!}
$$
我们可以枚举联通块的个数,
$k$
个联通块的简单无向连通图的生成函数是
$\frac{C(x)^k}{k!}$
,
那么有:
$$
G(x)=\sum_{i\geqslant 0}\frac{C(x)^k}{k!}=e^{C(x)}
$$
那么:
$$
C(x)=\ln G(x)
$$
于是就可以求
$C$
了。
EGF与置换:
$k-$
轮换的数量有
$(k-1)!$
个,因此所有轮换的
$EGF$
为:
$$
F(x)=\sum_{i\geqslant 0}\frac{(k-1)!}{k!}x^k=\sum_{i\geqslant 0}\frac{x^k}k=\ln(\frac1{1-x})
$$
仿照上例,所有置换的
$EGF$
为:
$$
G(x)=\sum_{i\geqslant 0}\frac{F(x)^i}{i!}=e^{F(x)}=e^{\ln(\frac1{1-x})}=\frac1{1-x}=\{1,1,1,1,\dots\}
$$
因此:
$g_i=i!$
(显然)。
EGF与背包:
有
$\sum a_i$
种物品,其中体积为
$i$
的物品有
$a_i$
种,每种物品有无限个,求背包方案数:
$$
\begin{align}
\prod_{i=1}^n(1+x^i+x^{2i}+\cdots)^{a_i}&=\prod_{i=1}^n(\frac{1}{1-x^i})^{a_i}\\
&=\exp\Bigl(\sum_{i=1}^na_i\ln(\frac1{1-x^i})\Bigr)\\
&=\exp\Bigl(\sum_{i=1}^na_i\sum_{j\geqslant 0}\frac{x^{ij}}j\Bigr)
\end{align}
$$
对于每一个
$i$
,后面那部分只有
$n/j$
项是有用的,于是可以
$O(n\log n)$
求,加上前面的
$\exp$
还是
$O(n\log n)$
。
伯努利数:
伯努利数是自然数幂和转为多项式的一部分系数,具体来说,设:
$$
S_m(n)=1^m+2^m+\cdots+n^m
$$
那么有:
$$
S_m(n)=\frac1{m+1}\sum_{k=0}^m(-1)^k\binom{m+1}kB_kn^{m+1-k}
$$
伯努利数满足:
$$
\sum_{k=0}^m\binom{m+1}kB_k=[m=0]
$$
也就是说:
$$
B_m=\frac{[m=0]-\sum_{k=0}^{m-1}\binom{m+1}kB_k}{m+1}
$$
如果我们能预处理出伯努利数,就可以在
$O(k)$
的时间复杂度内求某一个次幂的自然数幂和。
伯努利数的EGF为:
$$
\frac{x}{e^x-1}=\sum_{i\geqslant 0}B_i\frac{x^i}{i!}
$$
证明的话:
$$
\begin{align}
B(x)\times \frac{e^x-1}x&=\frac{\sum_{i\geqslant 0}B_i\frac{x^i}{i!}\times \sum_{i>0}\frac{x^i}{i!}}x\\
&=\frac{\sum_{i\geqslant 0}(\sum_{j=0}^{i-1}\binom ijB_j)\frac{x^i}{i!}}x\\
&=\frac{\sum_{i\geqslant 1}(\sum_{j=0}^{i-1}\binom ijB_j)\frac{x^i}{i!}}x\\
&=\sum_{i\geqslant 1}(\sum_{j=0}^{i-1}\binom ijB_j)\frac{x^{i-1}}{i!}\\
&=\sum_{i\geqslant 0}(\sum_{j=0}^i\binom {i+1}jB_j)\frac{x^i}{(i+1)!}\\
&=\sum_{i\geqslant 0}(\sum_{j=0}^i\binom {i+1}jB_j)\frac{x^i}{(i+1)!}\\
&=\sum_{i\geqslant 0}(\frac{[i=0]}{i+1})\frac{x^i}{i!}\\
&=1
\end{align}
$$
因此伯努利数可以用多项式求逆来
$O(n\log n)$
预处理。
一个更加简洁的
$O(n^2)$
递推式为:
$$
B_n+[n=1]=\sum_{k=0}^n\binom nkB_k
$$
考虑一个更加奇怪的生成函数:
$$
\begin{align}
S(x,n)&=\sum_{i\geqslant 0}S_i(n)\frac{x^i}{i!}\\
&=\sum_{i\geqslant 0}(\sum_{j=1}^nj^i)\frac{x^i}{i!}\\
&=\sum_{j=1}^n(\sum_{i\geqslant 0}j^i\frac{x^i}{i!})\\
&=\sum_{j=1}^ne^{jx}
\end{align}
$$
故:
$$
S(x,n)=\frac{e^{nx}-1}{e^x-1}
$$
更加一般的公式是:
$$
S_{m-1}(n)=\frac1m(B_m(n)-B_m(0))
$$
其中:
$$
B_m(k)=\sum_{i=0}^m\binom miB_ik^{m-i}
$$
也就是:
$$
[x^m](B(x)\times e^{kx})
$$
关于伯努利数的
$O(n\log n)$
预处理:
首先我们知道:
$$
\sum_{i\geqslant 0}B_i\frac{x^i}{i!}=\frac x{e^x-1}
$$
我们还知道:
$$
e^x=\sum_{i\geqslant 0}\frac{x^i}{i!}
$$
那么我们要计算的就是:
$$
\frac x{\sum_{i\geqslant 0}\frac{x^i}{i!}-1}=\frac x{\sum_{i\geqslant 1}\frac{x^i}{i!}-1}
$$
会发现分母
$[x^0]f(x)=0$
求不了逆,于是我们上下同时除掉一个
$x$
:
$$
\frac1{\sum_{i\geqslant 0}\frac{x^i}{(i+1)!}}
$$
这样就可以求逆预处理了。
广义指数函数
完全图的生成树个数是
$n^{n-2}$
,虽然说如果用
$prufer$
序列的话这个结论非常显然,但是我们还是尝试用EGF解决它。
先设
$n$
个点的无向完全图有
$t_n$
棵生成树,生成函数为
$T(x)$
,根据以往的经验我们考虑给一个
$n-1$
个点的图新加一个点,假设原来有
$m$
棵树,若每个树有
$p_i$
个点,那么可以得到一个递推式:
$$
\begin{align}
t_n&=\sum_{m>0}\frac1{m!}\sum_{p_1+p_2+\cdots+p_m=n-1}\binom{n-1}{p_1,p_2,\dots,p_m}\prod_{i=1}^m(p_i\times t_{p_i})\\
\frac{t_n}{(n-1)!}&=\sum_{m>0}\frac1{m!}\sum_{p_1+p_2+\cdots+p_m=n-1}\prod_{i=1}^m(\frac{p_i\times t_i}{p_i!})\\
设g_n&=nt_n\\
\frac{g_n}{n!}&=\sum_{m>0}\frac1{m!}\sum_{p_1+p_2+\cdots+p_m=n-1}\prod_{i=1}^m\frac{g_i}{p_i!}\\
\frac{g_n}{n!}&=\sum_{m>0}\frac1{m!}[x^{n-1}]G(x)^m\\
G(x)&=\sum_{n\geqslant 1}\sum_{m>0}\frac{[x^{n-1}]G(x)^m}{m!}\\
G(x)&=\sum_{n\geqslant 0}\sum_{m>0}\frac{x[x^n]G(x)^m}{m!}\\
G(x)&=xe^{G(x)}
\end{align}
$$
为了求解这个问题,我们还要引入一个前置知识:广义指数级数
$\mathcal E_t(x)$
。
$$
\mathcal E_t(x)=\sum_{k\geqslant0}(tk+1)^{k-1}\frac{x^k}{k!}
$$
他满足:
$$
\begin{align}
&\mathcal E_t(x)^{-t}\ln\mathcal E_t(x)=x\\
&\mathcal E_0(x)=e^x\\
&\mathcal E_t(x)^r=\sum_{i\geqslant 0}r\frac{(tk+r)^{k-1}}{k!}x^k\\
&\frac{\mathcal E_t(x)^r}{1-xt\mathcal E_t(x)^t}=\sum_{i\geqslant 0}\frac{(tk+r)^k}{k!}x^k\\
&\mathcal E_1(x)=e^{x\mathcal E_1(x)}
\end{align}
$$
观察最后一个式子就可以发现
$G(x)=x\mathcal E_1(x)$
。
而我们知道:
$$
\mathcal E_1(x)=\sum_{i\geqslant 0}\frac{(n+1)^{n-1}}{n!}x^n
$$
于是
$t_n=\frac{g_n}n=\frac1n\times n\times n^{n-2}=n^{n-2}$
。
生成函数形Polya定理:
回到那个经典的例子:一个
$2\times 2$
的网格,旋转同构算一种,问有多少种本质不同的黑白染色的方案。
根据polya定理
$ans=\frac1{|G|}[m^{c(a_1)}+m^{c(a_2)}+\cdots+m^{c(a_g)}]$
,不难得到
$ans=\frac14[2^2+2^1+2^4+2^1]=6$
。
但是这样只能得到方案数而不能得到具体的方案,因此我们可以引入母函数形Polya定理:
$$
F(m_1,m_2,\dots,m_p)=\frac1{|G|}[\sum_{g=1}^{|G|}\prod_i(m_1^i+m_2^i+\cdots+m_p^i)^{cnt_g[i]}]
$$
其中
$cnt_g[i]$
表示置换
$g$
中长度为
$i$
的循环节个数,还用那个例子:
$$
\begin{align}
F(b,w)&=\frac14[(b^2+w^2)^2+(b^4+w^4)^1+(b^2+w^2)^2+(b+w)^4]\\
&=b^4+b^3w+2b^2w^2+bw^3+w^4
\end{align}
$$
也就是说的
$6$
种方案中有
$1$
种全是黑色,一种有三个黑色,两种有两个黑色,一种有一个黑色,一种没有黑色。
概率生成函数:
把普通生成函数每一项的系数改为某一离散随机变量取值为
$i$
的概率,用公式表达就是:
$$
A(x)=\sum_{i\geqslant 0}P(x=i)x^i
$$
性质1:
$$
A(1)=\sum_{i\geqslant 0}P(x=i)=1
$$
性质2:
$$
随机变量取值的期望E(x)=F'(1)=\sum_{i\geqslant 0}iP(x=i)
$$
性质3
$$
随机变量的取值方差V(x)=F''(1)+F'(1)-(F'(1))^2
$$
卷积运算的含义是前后两部分都是概率。
如果花费
$p$
概率使得变量加一,那么生成函数为
$F(x)\times px$
。
In tag:
Copyright © 2020
wjh15101051
ღゝ◡╹)ノ♡