母函数总结
生成函数即母函数,是组合数学中尤其是计数方面的一个重要理论和工具。生成函数有普通型生成函数和指数型生成函数两种,其中普通型用的比较多。形式上说,普通型生成函数用于解决多重集的组合问题,而指数型母函数用于解决多重集的排列问题。母函数还可以解决递归数列的通项问题(例如使用母函数解决斐波那契数列的通项公式)。
对于任意数列
a
1
,
a
1
,
a
2
.
.
.
a
n
a_1,a_1,a_2...a_n
a1,a1,a2...an即用如下方法与一个函数联系起来:
G
(
x
)
=
a
0
+
a
1
x
+
a
2
x
2
+
.
.
.
+
a
n
x
n
G(x) = a_0 + a_1x+a_2x^2+...+a_nx^n
G(x)=a0+a1x+a2x2+...+anxn
则称
G
(
x
)
G(x)
G(x)是数列的生成函数
(
g
e
n
e
r
a
t
i
n
g
f
u
n
c
t
i
o
n
)
(generating\ function)
(generating function)
一般形式为
G
(
a
n
;
x
)
=
∑
n
=
0
∞
a
n
x
n
G(a_n;x) = \sum_{n=0}^\infty a_nx^n
G(an;x)=n=0∑∞anxn
序列
(
a
n
)
n
∈
N
(a_n)_{n\in N}
(an)n∈N的指数型母函数为:
E
G
(
a
n
;
x
)
=
∑
n
=
0
∞
a
n
x
n
n
!
EG(a_n;x) = \sum_{n=0}^\infty a_n \frac{x^n}{n!}
EG(an;x)=n=0∑∞ann!xn
组合问题
1.若有1克、2克、3克、4克的砝码各一枚,能称出哪几种重量?各有几种可能方案?
G
(
x
)
=
(
1
+
x
)
(
1
+
x
2
)
(
1
+
x
3
)
(
1
+
x
4
)
G
(
x
)
=
1
x
0
+
1
x
1
+
1
x
2
+
2
x
3
+
2
x
4
+
2
x
5
+
2
x
6
+
2
x
7
+
1
x
8
+
1
x
9
+
1
x
10
G(x) = (1+x)(1+x^2)(1+x^3)(1+x4) \\ G(x) = 1x^0+1x^1+1x^2+2x^3+2x^4+2x^5+2x^6+2x^7+1x^8+1x^9+1x^{10}
G(x)=(1+x)(1+x2)(1+x3)(1+x4)G(x)=1x0+1x1+1x2+2x3+2x4+2x5+2x6+2x7+1x8+1x9+1x10
式子展看整理之后:每一项的指数就是可以称出的重量,系数就是该重量可以拼出的方案数。
重量为0克的有1种方案
重量为1克的有1种方案
重量为2克的有1种方案
重量为3克的有2种方案
重量为4克的有2种方案
重量为5克的有2种方案
重量为6克的有2种方案
重量为7克的有2种方案
重量为8克的有1种方案
重量为9克的有1种方案
重量为10克的有1种方案
2.求用1分、2分、3分的邮票贴出不同数值的方案数——因邮票允许重复,故母函数为:
G
(
x
)
=
(
1
+
x
+
x
2
+
x
3
+
.
.
.
)
(
1
+
x
2
+
x
4
+
x
6
+
.
.
.
)
(
1
+
x
3
+
x
6
+
x
9
+
.
.
.
)
G
(
x
)
=
1
x
0
+
3
x
1
+
6
x
2
+
10
x
3
+
15
x
4
+
21
x
5
+
28
x
6
+
36
x
7
+
45
x
8
+
55
x
9
+
66
x
10
+
78
x
11
+
91
x
12
+
105
x
13
+
120
x
14
+
136
x
15
+
153
x
16
+
171
x
17
+
190
x
18
+
210
x
19
+
231
x
20
+
253
x
21
+
276
x
22
+
300
x
23
+
325
x
24
+
.
.
.
G(x) = (1+x+x^2+x^3+...)(1+x^2+x^4+x^6+...)(1+x^3+x^6+x^9+...) \\ G(x) = 1x^{0}+3x^{1}+6x^{2}+10x^{3}+15x^{4}+21x^{5}+28x^{6}+36x^{7}+45x^{8}+55x^{9}+66x^{10}+78x^{11}+91x^{12}+105x^{13}\\ +120x^{14}+136x^{15}+153x^{16}+171x^{17}+190x^{18}+210x^{19}+231x^{20}+253x^{21}+276x^{22}+300x^{23}+325x^{24}+...
G(x)=(1+x+x2+x3+...)(1+x2+x4+x6+...)(1+x3+x6+x9+...)G(x)=1x0+3x1+6x2+10x3+15x4+21x5+28x6+36x7+45x8+55x9+66x10+78x11+91x12+105x13+120x14+136x15+153x16+171x17+190x18+210x19+231x20+253x21+276x22+300x23+325x24+...
**3.**若有1克砝码3枚、2克砝码4枚、4克砝码2枚,问能称出哪几种重量?各有几种方案?
母函数为:
G
(
x
)
=
(
1
+
x
+
x
2
+
x
3
)
(
1
+
x
2
+
x
4
+
x
6
+
x
8
)
(
1
+
x
4
+
x
8
)
G(x) = (1+x+x^2+x^3)(1+x^2+x^4+x^6+x^8)(1+x^4+x^8)
G(x)=(1+x+x2+x3)(1+x2+x4+x6+x8)(1+x4+x8)
4.整数拆分,就是把整数分解成若干整数的和,整数n拆分成1,2,3,…,m的和,求母函数。
G
(
x
)
=
(
1
+
x
+
x
1
+
x
2
+
x
3
+
.
.
.
)
(
1
+
x
2
+
x
4
+
x
6
+
x
8
+
.
.
.
)
(
1
+
x
3
+
x
6
+
x
9
+
.
.
.
)
.
.
.
(
1
+
x
m
+
x
2
m
+
.
.
.
)
G(x) = (1+x+x^1+x^2+x^3+...)(1+x^2+x^4+x^6+x^8+...)(1+x^3+x^6+x^9+...)...(1+x^m+x^{2m}+...)
G(x)=(1+x+x1+x2+x3+...)(1+x2+x4+x6+x8+...)(1+x3+x6+x9+...)...(1+xm+x2m+...)
4.1如若上例中m至少出现一次,其母函数又如何?
m必须要选,那么就将
x
0
m
x^{0m}
x0m项变为
0
0
0
G
(
x
)
=
(
1
+
x
+
x
1
+
x
2
+
x
3
+
.
.
.
)
(
1
+
x
2
+
x
4
+
x
6
+
x
8
+
.
.
.
)
(
1
+
x
3
+
x
6
+
x
9
+
.
.
.
)
.
.
.
(
x
m
+
x
2
m
+
.
.
.
)
G(x) = (1+x+x^1+x^2+x^3+...)(1+x^2+x^4+x^6+x^8+...)(1+x^3+x^6+x^9+...)...(x^m+x^{2m}+...)
G(x)=(1+x+x1+x2+x3+...)(1+x2+x4+x6+x8+...)(1+x3+x6+x9+...)...(xm+x2m+...)
排列问题(指数型母函数)
**1.**考虑n个元素组成的多重集,其中 a i a_i ai重复出现了 n 1 n_1 n1次, a 2 a_2 a2重复出现了 n 2 n_2 n2次, . . . ... ..., a k a_k ak重复出现了 n k n_k nk次, n = n 1 + n 2 + . . + n k n=n_1+n_2+..+n_k n=n1+n2+..+nk。现在从中取 r r r个进行排列,求不同的排列数。
若
r
=
=
n
r==n
r==n,那么就是n个元素的全排列。
n
!
n
1
!
n
2
!
n
3
!
.
.
.
n
k
!
\frac{n!}{n_1!n_2!n_3!...n_k!}
n1!n2!n3!...nk!n!
母函数为:
G
e
(
x
)
=
(
1
+
x
1
!
+
x
2
2
!
+
.
.
.
x
n
1
n
1
!
)
(
1
+
x
1
!
+
x
2
2
!
+
.
.
.
x
n
2
n
2
!
)
(
1
+
x
1
!
+
x
2
2
!
+
.
.
.
x
n
3
n
3
!
)
.
.
.
(
1
+
x
1
!
+
x
2
2
!
+
.
.
.
x
n
k
n
k
!
)
G_e(x) = (1+\frac{x}{1!}+\frac{x^2}{2!}+...\frac{x^{n_1}}{n_1!})(1+\frac{x}{1!}+\frac{x^2}{2!}+...\frac{x^{n_2}}{n_2!})(1+\frac{x}{1!}+\frac{x^2}{2!}+...\frac{x^{n_3}}{n_3!})...(1+\frac{x}{1!}+\frac{x^2}{2!}+...\frac{x^{n_k}}{n_k!})
Ge(x)=(1+1!x+2!x2+...n1!xn1)(1+1!x+2!x2+...n2!xn2)(1+1!x+2!x2+...n3!xn3)...(1+1!x+2!x2+...nk!xnk)
**2.**有
n
n
n种物品,已知每种物品的数量。要求从中选出
m
m
m件物品的排列数。例如有两种物品
A
A
A,
B
B
B,并且数量都是
1
1
1,从中选
2
2
2件物品,则排列有
"
A
B
"
"AB"
"AB",
"
B
A
"
"BA"
"BA"两种。
每组输入数据有两行,第一行是二个数
k
k
k,
m
m
m
(
1
<
=
m
,
k
<
=
10
)
(1<=m, k<=10)
(1<=m,k<=10),含义如上。第二行有
k
k
k个数,分别表示这
k
k
k件物品的数量。对应每组数据,请输出所有可能的排列数.
母函数:
n
i
表
示
第
i
个
物
品
的
数
量
G
e
(
x
)
=
(
1
+
x
1
!
+
x
2
2
!
+
.
.
.
x
n
1
n
1
!
)
(
1
+
x
1
!
+
x
2
2
!
+
.
.
.
x
n
2
n
2
!
)
(
1
+
x
1
!
+
x
2
2
!
+
.
.
.
x
n
3
n
3
!
)
.
.
.
(
1
+
x
1
!
+
x
2
2
!
+
.
.
.
x
n
k
n
k
!
)
n_i表示第i个物品的数量\\ G_e(x) = (1+\frac{x}{1!}+\frac{x^2}{2!}+...\frac{x^{n_1}}{n_1!})(1+\frac{x}{1!}+\frac{x^2}{2!}+...\frac{x^{n_2}}{n_2!})(1+\frac{x}{1!}+\frac{x^2}{2!}+...\frac{x^{n_3}}{n_3!})...(1+\frac{x}{1!}+\frac{x^2}{2!}+...\frac{x^{n_k}}{n_k!})
ni表示第i个物品的数量Ge(x)=(1+1!x+2!x2+...n1!xn1)(1+1!x+2!x2+...n2!xn2)(1+1!x+2!x2+...n3!xn3)...(1+1!x+2!x2+...nk!xnk)
指数为
m
m
m的项的系数为
V
a
l
u
e
m
!
x
m
\frac{Value}{m!}x^m
m!Valuexm,Value即为所求.
**3.**现在有一长度为 N N N的字符串,满足以下条件:
(1)字符串仅由 A , B , C , D A,B,C,D A,B,C,D四个字母组成;
(2) A A A出现偶数次(也可以不出现);
(3)
C
C
C出现偶数次(也可以不出现);
比如:当
N
=
2
N=2
N=2时,所有满足条件的字符串有如下
6
6
6个:
B
B
BB
BB,
B
D
BD
BD,
D
B
DB
DB,
D
D
DD
DD,
A
A
AA
AA,
C
C
CC
CC.请计算满足条件的字符串个数,由于数据非常大,给出最后两位数字即可.每组输入的第一行是一个整数
T
T
T,表示测试实例的个数,下面是T行数据,每行一个整数
N
(
1
<
=
N
<
2
6
4
)
N(1<=N<2^64)
N(1<=N<264),当
T
=
0
T=0
T=0时结束.
母函数:
G
e
(
x
)
=
A
B
C
D
B
=
D
=
(
1
+
x
1
!
+
x
2
2
!
+
.
.
.
x
n
n
!
)
A
=
C
=
(
1
+
x
2
2
!
+
x
4
4
!
+
.
.
.
x
n
n
!
)
G_e(x) = ABCD \\ \\ B = D = (1+\frac{x}{1!}+\frac{x^2}{2!}+...\frac{x^{n}}{n!}) \\ A = C = (1+\frac{x^2}{2!}+\frac{x^4}{4!}+...\frac{x^{n}}{n!})
Ge(x)=ABCDB=D=(1+1!x+2!x2+...n!xn)A=C=(1+2!x2+4!x4+...n!xn)
已 知 e x = 1 + x 1 ! + x 2 2 ! + x 3 3 ! + . . . e − x = 1 − x 1 ! + x 2 2 ! − x 3 3 ! + . . . 已知e^x = 1+\frac{x}{1!}+\frac{x^2}{2!}+\frac{x^3}{3!}+... \\ e^{-x} = 1-\frac{x}{1!}+\frac{x^2}{2!}-\frac{x^3}{3!}+... 已知ex=1+1!x+2!x2+3!x3+...e−x=1−1!x+2!x2−3!x3+...
那么
B
=
D
=
e
x
B = D = e^x
B=D=ex
A = C = e x + e − x 2 A = C = \frac{e^x+e^{-x}}{2} A=C=2ex+e−x
G e ( x ) = ( e x + e − x 2 ) 2 ( e x ) 2 = ( 1 4 ) ( e x + e − x ) 2 e 2 x = ( 1 4 ) ( e 2 x + e − 2 x + 2 e x e − x ) e 2 x = ( 1 4 ) ( e 2 x + e − 2 x + 2 ) e 2 x = ( 1 4 ) ( e 4 x + 1 + 2 e 2 x ) = ( 1 4 ) { ( 1 + 4 x 1 ! + ( 4 x ) 2 2 ! + . . . ) + 1 + 2 ( 1 + 2 x 1 ! + ( 2 x ) 2 2 ! + . . . ) } G_e(x) = (\frac{e^x+e^{-x}}{2})^2(e^x)^2 \\ = (\frac{1}{4})(e^x+e^{-x})^2e^{2x} \\ = (\frac{1}{4})(e^{2x}+e^{-2x}+2e^xe^{-x})e^{2x} \\ = (\frac{1}{4})(e^{2x}+e^{-2x}+2)e^{2x} \\ = (\frac{1}{4})(e^{4x}+1+2e^{2x}) \\ = (\frac{1}{4})\{(1+\frac{4x}{1!}+\frac{(4x)^2}{2!}+...)+1+2(1+\frac{2x}{1!}+\frac{(2x)^2}{2!}+...) \} \\ Ge(x)=(2ex+e−x)2(ex)2=(41)(ex+e−x)2e2x=(41)(e2x+e−2x+2exe−x)e2x=(41)(e2x+e−2x+2)e2x=(41)(e4x+1+2e2x)=(41){(1+1!4x+2!(4x)2+...)+1+2(1+1!2x+2!(2x)2+...)}
x
n
x^n
xn项为:
(
1
4
)
[
(
4
x
)
n
n
!
+
2
(
2
x
)
n
n
!
]
=
4
n
x
n
+
2
n
+
1
x
n
4
n
!
=
(
4
n
−
1
+
2
n
−
1
)
x
n
n
!
(\frac{1}{4})[\frac{(4x)^n}{n!}+2\frac{(2x)^n}{n!}] \\ = \frac{4^nx^n+2^{n+1}x^n}{4n!} \\ = (4^{n-1}+2^{n-1})\frac{x^n}{n!}
(41)[n!(4x)n+2n!(2x)n]=4n!4nxn+2n+1xn=(4n−1+2n−1)n!xn
小括号内即为所求,使用快速幂得出结果即可.