母函数的性质
1、定义
母函数是用于对应一个无穷序列的幂级数,一般来说母函数有形式:
G
(
x
)
=
g
0
+
g
1
x
+
g
2
+
x
2
+
.
.
.
=
∑
i
=
0
∞
g
i
x
i
G(x)=g_0+g_1x+g_2+x^2+...=\sum_{i=0}^\infty g_ix^i
G(x)=g0+g1x+g2+x2+...=i=0∑∞gixi
=
<
g
0
,
g
1
,
g
2
.
.
.
.
.
.
>
=<g_0,g_1,g_2......>
=<g0,g1,g2......>2、闭形式
举一个例子,有一个生成函数是
<
1
,
1
,
1...
>
<1,1,1...>
<1,1,1...>,我们尝试对它求和:
<
1
,
1
,
1...
>
=
1
−
x
∞
1
−
x
=
1
1
−
x
<1,1,1...>=\frac{1-x^{\infty}}{1-x}=\frac{1}{1-x}
<1,1,1...>=1−x1−x∞=1−x1最后一步是因为在
x
∈
(
0
,
1
)
x\in(0,1)
x∈(0,1)时,
x
∞
x^\infty
x∞趋近于
0
0
0,那我们就可以得到一个简洁的表达方法,这就是闭形式。
3、基础操作
- 放缩,即 < c g 0 , c g 1 , c g 2 . . . . > = c G ( x ) <cg_0,cg_1,cg_2....>=cG(x) <cg0,cg1,cg2....>=cG(x)
- 加减法,即 < f 0 ± g 0 , f 1 ± g 1 , f 2 ± g 2 . . . . > = F ( x ) ± G ( x ) <f_0\pm g_0,f_1\pm g_1,f_2\pm g_2....>=F(x)\pm G(x) <f0±g0,f1±g1,f2±g2....>=F(x)±G(x)
- 求导,举一个例子,对于 G ( x ) = 1 + x + x 2 . . . . = 1 1 − x G(x)=1+x+x^2....=\frac{1}{1-x} G(x)=1+x+x2....=1−x1求导, G ′ ( x ) = 1 + 2 x + 3 x 2 . . . = 1 ( 1 − x ) 2 G'(x)=1+2x+3x^2...=\frac{1}{(1-x)^2} G′(x)=1+2x+3x2...=(1−x)21,这里利用到了对母函数求导等价于对它的闭形式求导。
- 卷积,类比多项式的卷积,这个操作广泛运用于组合数学。
应用
[例一] wyx旅游
题目描述
小明出门旅游,需要带一些食物,包括薯片,巧克力,矿泉水,汉堡,牛奶和糖果。经过估计,他觉得带 n ≤ 1 0 100 n\leq 10^{100} n≤10100 件食物比较合适,但他还有一些癖好,问方案数:
- 最多带1个汉堡
- 巧克力的块数是5的倍数
- 最多带4瓶矿泉水
- 薯片的包数是一个偶数
- 最多带3罐牛奶
- 糖果的个数是4的倍数
解法
尝试把这些限制写成母函数的形式:
- 汉堡, h ( x ) = 1 + x h(x)=1+x h(x)=1+x
- 巧克力, c ( x ) = 1 + x 5 + x 10 . . . . . . = 1 1 − x 5 c(x)=1+x^5+x^{10}......=\frac{1}{1-x^5} c(x)=1+x5+x10......=1−x51
- 矿泉水, p ( x ) = 1 + x + x 2 + x 3 + x 4 = 1 − x 5 1 − x p(x)=1+x+x^2+x^3+x^4=\frac{1-x^5}{1-x} p(x)=1+x+x2+x3+x4=1−x1−x5
- 薯片, w ( x ) = 1 + x 2 + x 4 . . . . . . = 1 1 − x 2 w(x)=1+x^2+x^4......=\frac{1}{1-x^2} w(x)=1+x2+x4......=1−x21
- 牛奶, m ( x ) = 1 + x 1 + x 2 + x 3 = 1 − x 4 1 − x m(x)=1+x^1+x^2+x^3=\frac{1-x^4}{1-x} m(x)=1+x1+x2+x3=1−x1−x4
- 糖果, s ( x ) = 1 + x 4 + x 8 . . . . = 1 1 − x 4 s(x)=1+x^4+x^8....=\frac{1}{1-x^4} s(x)=1+x4+x8....=1−x41
把这些多项式乘起来:
1
(
1
−
x
)
3
=
<
1
,
C
3
2
,
C
4
2
.
.
.
.
.
.
>
\frac{1}{(1-x)^3}=<1,C_3^2,C_4^2......>
(1−x)31=<1,C32,C42......>上式的得出本质上是用插板法解决的不定方程解的个数,所以答案就是
C
n
+
2
2
=
n
(
n
+
1
)
/
2
C_{n+2}^2=n(n+1)/2
Cn+22=n(n+1)/2
[例二] 无名
求 n n n位十进制正数中出现偶数个 5 5 5的数的个数。
兄弟们,我们先来搞个
d
p
dp
dp,设
a
[
i
]
a[i]
a[i]为偶数个
5
5
5的
i
i
i位十进制数,
b
[
i
]
b[i]
b[i]为奇数个
5
5
5的
i
i
i位十进制数:
a
i
=
9
a
i
−
1
+
b
i
−
1
a_i=9a_{i-1}+b_{i-1}
ai=9ai−1+bi−1
b
i
=
9
b
i
−
1
+
a
i
−
1
b_i=9b_{i-1}+a_{i-1}
bi=9bi−1+ai−1兄弟们,我们把它写成母函数的形式:
A
(
x
)
=
∑
i
=
0
+
∞
a
i
+
1
x
i
A(x)=\sum_{i=0}^{+\infty}a_{i+1}x^i
A(x)=i=0∑+∞ai+1xi
B
(
x
)
=
∑
i
=
0
+
∞
b
i
+
1
x
i
B(x)=\sum_{i=0}^{+\infty}b_{i+1}x^i
B(x)=i=0∑+∞bi+1xi兄弟们,我们优化的目的就是换一种简洁的表示出母函数(进而得到系数),观察转移方程,我们尝试消掉一些东西。
A
(
x
)
A(x)
A(x)乘以
−
9
x
-9x
−9x,
B
(
x
)
B(x)
B(x)乘以
−
x
-x
−x,然后我们把这两个和
A
(
x
)
A(x)
A(x)等号两边相加(自己算),就能得到:
(
1
−
9
x
)
A
(
x
)
−
x
B
(
x
)
=
a
1
=
8
(1-9x)A(x)-xB(x)=a_1=8
(1−9x)A(x)−xB(x)=a1=8同理:
(
1
−
9
x
)
B
(
x
)
−
x
A
(
x
)
=
b
1
=
1
(1-9x)B(x)-xA(x)=b_1=1
(1−9x)B(x)−xA(x)=b1=1然后解一个方程就可以得到:
A
(
x
)
=
−
71
x
+
8
(
1
−
8
x
)
(
1
−
10
x
)
,
B
(
x
)
=
1
−
x
(
1
−
8
x
)
(
1
−
10
x
)
A(x)=\frac{-71x+8}{(1-8x)(1-10x)},B(x)=\frac{1-x}{(1-8x)(1-10x)}
A(x)=(1−8x)(1−10x)−71x+8,B(x)=(1−8x)(1−10x)1−x要把
A
(
x
)
A(x)
A(x)再转化成无穷级数的形式,需要把它拆成两部分,用初中的待定系数法:
A
(
x
)
=
(
7
(
1
−
8
x
)
+
9
1
−
10
x
)
/
2
A(x)=(\frac{7}{(1-8x)}+\frac{9}{1-10x})/2
A(x)=((1−8x)7+1−10x9)/2这里需要把闭形式转化成无穷级数,可以类比最简单的形式(
∑
x
i
=
1
1
−
x
\sum x^i=\frac{1}{1-x}
∑xi=1−x1),就可以得到:
2
A
(
x
)
=
∑
i
=
0
+
∞
7
×
(
8
x
)
i
+
∑
i
=
0
+
∞
9
×
(
10
x
)
i
2A(x)=\sum_{i=0}^{+\infty}7\times (8x)^i+\sum_{i=0}^{+\infty}9\times (10x)^i
2A(x)=i=0∑+∞7×(8x)i+i=0∑+∞9×(10x)i系数(答案)就不难知道了:
a
n
=
(
7
×
8
n
−
1
)
/
2
+
(
9
×
1
0
n
−
1
)
/
2
a_n=(7\times 8^{n-1})/2+(9\times 10^{n-1})/2
an=(7×8n−1)/2+(9×10n−1)/2
[例三] 遗忘的集合
https://blog.csdn.net/C202044zxy/article/details/103714435