前言
昨天晚上学习了生成函数。终于从多项式的深渊中爬出来找到了一丝希望。写篇博客纪念一下似乎友善一些的生成函数(母函数)。(叫生成函数好像比母函数好听点)
定义
生成函数是用于对应一个无穷系列的幂函数。
一般的生成函数形式为:
G
(
x
)
=
g
0
+
g
1
x
+
g
2
x
.
.
.
=
∑
n
≥
0
g
n
x
n
G(x)=g_0+g_1x+g_2x...=\sum_{n≥0}g_nx^n
G(x)=g0+g1x+g2x...=n≥0∑gnxn
也可以将系数提出来写成:
<
g
0
,
g
1
,
g
2
,
.
.
.
,
g
n
>
<g_0,g_1,g_2,...,g_n>
<g0,g1,g2,...,gn>
例如,
<
1
,
1
,
1
,
1
,
1
,
.
.
.
>
⟺
<1,1,1,1,1,...>\ \Longleftrightarrow
<1,1,1,1,1,...> ⟺
G
(
x
)
=
1
+
x
+
x
2
+
.
.
.
G(x)=1+x+x^2+...
G(x)=1+x+x2+...
闭形式
对于生成函数
G
(
x
)
=
1
+
x
+
x
2
+
.
.
.
=
∑
n
≥
0
x
n
G(x)=1+x+x^2+...= \sum_{n≥0}x^n
G(x)=1+x+x2+...=∑n≥0xn,可将它看做一个公比为x的等比数列。根据等比数列求和公式,它等价于
1
−
x
n
1
−
x
\frac{1-x^n}{1-x}
1−x1−xn
,在这里,我们若设
0
<
x
<
1
0<x<1
0<x<1,因为
n
n
n是无穷大,所以
x
n
x^n
xn趋近于
0
0
0,可以约掉,得
1
1
−
x
\frac{1}{1-x}
1−x1
当然,这里是因为项数无限才能这样约,对于有限项是不能直接约的。
基本操作
都比较显然,不详细说明
放缩
c
g
0
,
c
g
1
,
c
g
2
.
.
.
cg_0,cg_1,cg_2...
cg0,cg1,cg2...=
c
G
(
x
)
=
g
0
+
g
1
x
+
g
2
x
2
+
.
.
.
cG(x)=g_0+g_1x+g_2x^2+...
cG(x)=g0+g1x+g2x2+...
加减法
<
f
0
±
g
0
,
f
1
±
g
1
,
.
.
.
>
<f_0\pm g_0,f_1\pm g_1,...>
<f0±g0,f1±g1,...>=
F
(
x
)
±
G
(
x
)
=
(
f
0
±
g
0
)
+
(
f
1
±
g
1
)
x
+
(
f
2
±
g
2
)
+
.
.
.
F(x)\pm G(x)=(f_0\pm g_0)+(f_1\pm g_1)x+(f_2\pm g_2)+...
F(x)±G(x)=(f0±g0)+(f1±g1)x+(f2±g2)+...
右移
x k G ( x ) = g 0 x k + g 1 x k + 1 + g 2 x k + 2 + . . . x^kG(x)=g_0x^k+g_1x^{k+1}+g_2x^{k+2}+... xkG(x)=g0xk+g1xk+1+g2xk+2+...
求导
G
(
x
)
=
g
0
+
g
1
x
+
g
2
x
2
+
g
3
x
3
+
.
.
.
G(x)=g_0+g_1x+g_2x^2+g_3x^3+...
G(x)=g0+g1x+g2x2+g3x3+...
G
′
(
x
)
=
g
1
+
2
g
2
x
+
3
g
3
x
2
G'(x)=g_1+2g_2x+3g_3x^2
G′(x)=g1+2g2x+3g3x2
举个栗子:
G
(
x
)
=
1
+
x
+
x
2
+
x
3
+
.
.
.
=
1
x
−
1
G(x)=1+x+x^2+x^3+...=\frac{1}{x-1}
G(x)=1+x+x2+x3+...=x−11
G
′
(
x
)
=
1
+
2
x
+
3
x
2
+
4
x
3
+
.
.
.
=
1
(
x
−
1
)
2
G'(x)=1+2x+3x^2+4x^3+...=\frac{1}{(x-1)^2}
G′(x)=1+2x+3x2+4x3+...=(x−1)21
<
1
,
2
,
3
,
.
.
.
>
⟺
1
(
x
−
1
)
2
<1,2,3,...>\ \Longleftrightarrow\ \frac{1}{(x-1)^2}
<1,2,3,...> ⟺ (x−1)21
卷积
S
(
x
)
=
F
(
x
)
⋅
G
(
x
)
=
(
f
0
+
f
1
x
+
f
2
x
2
+
.
.
.
)
(
g
0
+
g
1
x
+
g
2
x
2
+
.
.
.
)
S(x)=F(x)\cdot G(x)=(f_0+f_1x+f_2x^2+...)(g_0+g_1x+g_2x^2+...)
S(x)=F(x)⋅G(x)=(f0+f1x+f2x2+...)(g0+g1x+g2x2+...)
s
i
=
∑
j
=
0
j
=
i
f
j
g
i
−
j
s_i=\sum_{j=0}^{j=i}f_jg_{i-j}
si=j=0∑j=ifjgi−j
简单序列对应的母函数
G
(
x
)
=
(
1
+
x
+
x
2
+
x
3
+
.
.
.
)
m
=
1
(
1
−
x
)
m
G(x)=(1+x+x^2+x^3+...)^m=\frac{1}{(1-x)^m}
G(x)=(1+x+x2+x3+...)m=(1−x)m1
若
x
1
+
x
2
+
x
3
+
.
.
.
+
x
m
=
k
x_1+x_2+x_3+...+x_m=k
x1+x2+x3+...+xm=k
则
g
k
g_k
gk为这个不定方程非负整数解的个数:
g
k
=
C
m
+
k
−
1
m
−
1
g_k=C_{m+k-1}^{m-1}
gk=Cm+k−1m−1
得到:
1
(
1
−
x
)
m
=
<
1
,
C
m
m
−
1
,
C
m
+
1
m
−
1
,
C
m
+
2
m
−
1
,
.
.
.
>
\frac{1}{(1-x)^m}=<1,C_{m}^{m-1},C_{m+1}^{m-1},C_{m+2}^{m-1},...>
(1−x)m1=<1,Cmm−1,Cm+1m−1,Cm+2m−1,...>
一道例题
指数型母函数
咕咕咕