生成函数
生成函数即母函数,是组合数学中尤其是计数方面的一个重要理论和工具。
生成函数有普通型生成函数和指数型生成函数两种,其中普通型用的比较多。形式上说,普通型生成函数用于解决多重集的组合问题,而指数型母函数用于解决多重集的排列问题。
生成函数的应用简单来说在于研究未知(通项)数列规律,用这种方法在给出递推式的情况下求出数列的通项,生成函数是推导Fibonacci数列的通项公式方法之一,另外组合数学中的Catalan数也可以通过生成函数的方法得到 ——百度百科
参考博客:https://blog.csdn.net/wu_tongtong/article/details/78854572
1.普通型生成函数(多重集的组合问题)
1.1单下标序列生成函数
A ( x ) = ∑ n = 0 ∞ a n x n A(x)=\displaystyle\sum_{n=0}^{\infty}a_nx^n A(x)=n=0∑∞anxn
1.2双下标序列生成函数
A ( x 1 , x 2 ) = ∑ n = 0 ∞ a ( n , m ) x 1 n x 2 m A(x_1,x_2)=\displaystyle\sum_{n=0}^{\infty}a_{(n,m)}x_1^nx_2^m A(x1,x2)=n=0∑∞a(n,m)x1nx2m
2.常见的普通型生成函数
2.1二项式系数
序列
a
(
n
,
m
)
=
(
n
m
)
=
C
n
m
,
m
∈
[
0
,
n
]
a_{(n,m)}= \binom{n}{m}=C_n^m,m\in[0,n]
a(n,m)=(mn)=Cnm,m∈[0,n]
其生成函数
A
(
x
,
y
)
=
∑
k
=
0
n
C
n
k
x
n
−
k
y
k
=
(
x
+
y
)
n
A(x,y)=\displaystyle\sum_{k=0}^{n}C_n^kx^{n-k}y^{k}=(x+y)^n
A(x,y)=k=0∑nCnkxn−kyk=(x+y)n
2.2斐波那契数列
序列
F
n
=
1
5
⋅
(
(
1
+
5
2
)
n
−
(
1
−
5
2
)
n
)
F_n=\cfrac{1}{\sqrt{5}}·\big((\cfrac{1+\sqrt{5}}{2})^n-(\cfrac{1-\sqrt{5}}{2})^n\big)
Fn=51⋅((21+5)n−(21−5)n)
或者表示为
F
(
n
)
=
F
(
n
−
1
)
+
F
(
n
)
F(n)=F(n-1)+F(n)
F(n)=F(n−1)+F(n)
F
(
0
)
=
0
,
F
(
1
)
=
1
F(0)=0,F(1)=1
F(0)=0,F(1)=1
S
(
n
)
=
F
(
1
)
+
F
(
2
)
+
⋯
+
F
(
n
)
=
F
(
n
+
2
)
−
1
S(n)=F(1)+F(2)+\cdots+F(n)=F(n+2)-1
S(n)=F(1)+F(2)+⋯+F(n)=F(n+2)−1
当且仅当
n
n
n能被3整除时,
F
(
n
)
F(n)
F(n)是偶数
其生成函数
A
(
x
)
=
∑
n
=
0
∞
F
n
x
n
=
1
1
−
x
−
x
2
A(x)=\displaystyle\sum_{n=0}^{\infty}F_nx^n=\cfrac{1}{1-x-x^2}
A(x)=n=0∑∞Fnxn=1−x−x21
2.3
序列
a
n
=
1
a_n=1
an=1
其生成函数
A
(
x
)
=
∑
n
=
0
∞
a
n
x
n
=
1
1
−
x
A(x)=\displaystyle\sum_{n=0}^{\infty}a_nx^n=\cfrac{1}{1-x}
A(x)=n=0∑∞anxn=1−x1
显然序列
b
n
=
n
b_n=n
bn=n
其生成函数
B
(
x
)
=
A
′
(
x
)
=
∑
n
=
0
∞
b
n
x
n
=
(
1
1
−
x
)
2
B(x)=A'(x)=\displaystyle\sum_{n=0}^{\infty}b_nx^n=(\cfrac{1}{1-x})^2
B(x)=A′(x)=n=0∑∞bnxn=(1−x1)2
并可以往下递推
A
′
′
(
x
)
,
A
′
′
′
(
x
)
⋯
A''(x),A'''(x)\cdots
A′′(x),A′′′(x)⋯
3.定理
3.1.
设从n元集合
S
=
{
M
1
a
1
,
M
2
a
2
,
M
3
a
3
,
⋯
,
M
n
a
n
}
S=\{M_1a_1,M_2a_2,M_3a_3,\cdots,M_na_n\}
S={M1a1,M2a2,M3a3,⋯,Mnan}中取出k个元素组成新的序列
b
k
b_k
bk,第i个元素
a
i
a_i
ai有
M
i
M_i
Mi个
新序列
b
k
b_k
bk的生成函数为
∏
i
=
0
n
(
∑
m
∈
M
i
x
m
)
\displaystyle\prod_{i=0}^{n}\big(\sum_{m\in M_i}^{}x^m\big)
i=0∏n(m∈Mi∑xm)
例:用重量分别为1、2、4克的砝码各两个可以组成多少种不同的重量,每种重量的方案数分别为多少?
1克砝码
(
1
+
x
+
x
2
)
(1+x+x^2)
(1+x+x2) 1为不选,
x
x
x为选一个,
x
2
x^2
x2为选两个
2克砝码
(
1
+
x
2
+
x
4
)
(1+x^2+x^4)
(1+x2+x4) 1为不选,
x
2
x^2
x2为选一个,
x
4
x^4
x4为选两个
4克砝码
(
1
+
x
4
+
x
8
)
(1+x^4+x^8)
(1+x4+x8) 1为不选,
x
4
x^4
x4为选一个,
x
8
x^8
x8为选两个
所以生成函数为
A
(
x
)
=
(
1
+
x
+
x
2
)
(
1
+
x
2
+
x
4
)
(
1
+
x
4
+
x
8
)
A(x)=(1+x+x^2)(1+x^2+x^4)(1+x^4+x^8)
A(x)=(1+x+x2)(1+x2+x4)(1+x4+x8)
展开为
A
(
x
)
=
1
+
x
+
2
x
2
+
x
3
+
3
x
4
+
2
x
5
+
4
x
6
+
4
x
7
+
4
x
8
+
⋯
+
x
21
A(x)=1+x+2x^2+x^3+3x^4+2x^5+4x^6+4x^7+4x^8+\cdots+x^{21}
A(x)=1+x+2x2+x3+3x4+2x5+4x6+4x7+4x8+⋯+x21
不难发现指数为砝码组成的重量,系数为方案数
3.2.
A n ( x ) = 1 ( 1 + x ) ( 1 + x + x 2 ) ⋯ ( 1 + x + x 2 + ⋯ + x n − 1 ) = ∏ j = 1 n ( 1 − x j ) ( 1 − x ) n A_n(x)=1(1+x)(1+x+x^2)\cdots(1+x+x^2+\cdots+x^{n-1})=\cfrac{\displaystyle\prod_{j=1}^{n}(1-x^j)}{(1-x)^n} An(x)=1(1+x)(1+x+x2)⋯(1+x+x2+⋯+xn−1)=(1−x)nj=1∏n(1−xj)
4.指数型生成函数(多重集的排列问题)
A ( x ) = ∑ n = 0 ∞ a n x n n ! A(x)=\displaystyle\sum_{n=0}^{\infty}a_n\cfrac{x^n}{n!} A(x)=n=0∑∞ann!xn
5.常见的指数型生成函数
5.1
序列
a
n
=
1
a_n=1
an=1
其生成函数
A
(
x
)
=
∑
n
=
0
∞
x
n
n
!
=
e
x
A(x)=\displaystyle\sum_{n=0}^{\infty}\cfrac{x^n}{n!}=e^x
A(x)=n=0∑∞n!xn=ex
5.2
序列
a
n
=
p
n
a_n=p^n
an=pn
其生成函数
A
(
x
)
=
∑
n
=
0
∞
p
n
x
n
n
!
=
e
p
n
A(x)=\displaystyle\sum_{n=0}^{\infty}p^n\cfrac{x^n}{n!}=e^{pn}
A(x)=n=0∑∞pnn!xn=epn
5.3
序列
a
n
=
{
1
x=2k
0
x=2k+1
(
k
∈
N
)
a_n=\begin{cases}1&\text{x=2k}\\ 0&\text{x=2k+1}\end{cases}(k\in N)
an={10x=2kx=2k+1(k∈N)
其生成函数
A
(
x
)
=
∑
n
=
0
∞
[
n
%
2
=
0
]
x
n
n
!
=
1
+
x
2
2
!
+
x
4
4
!
+
⋯
=
e
x
+
e
−
x
2
A(x)=\displaystyle\sum_{n=0}^{\infty}[n\%2=0]\cfrac{x^n}{n!}=1+\cfrac{x^2}{2!}+\cfrac{x^4}{4!}+\cdots=\cfrac{e^x+e^{-x}}{2}
A(x)=n=0∑∞[n%2=0]n!xn=1+2!x2+4!x4+⋯=2ex+e−x
5.4
序列
a
n
=
{
0
x=2k
1
x=2k+1
(
k
∈
N
)
a_n=\begin{cases}0&\text{x=2k}\\ 1&\text{x=2k+1}\end{cases}(k\in N)
an={01x=2kx=2k+1(k∈N)
其生成函数
A
(
x
)
=
∑
n
=
0
∞
[
n
%
2
=
1
]
x
n
n
!
=
x
1
+
x
3
3
!
+
⋯
=
e
x
−
e
−
x
2
A(x)=\displaystyle\sum_{n=0}^{\infty}[n\%2=1]\cfrac{x^n}{n!}=\cfrac{x}{1}+\cfrac{x^3}{3!}+\cdots=\cfrac{e^x-e^{-x}}{2}
A(x)=n=0∑∞[n%2=1]n!xn=1x+3!x3+⋯=2ex−e−x
5.5 伯努利数
序列
b
i
b_i
bi是伯努利数
其生成函数
B
(
x
)
=
∑
i
=
0
b
i
x
i
i
!
=
x
e
x
−
1
B(x)=\displaystyle\sum_{i=0}b_i\cfrac{x^i}{i!}=\cfrac{x}{e^x-1}
B(x)=i=0∑bii!xi=ex−1x
6.定理
设
S
S
S是多重集合
{
n
1
⋅
a
1
,
n
2
⋅
a
2
⋯
,
n
i
⋅
a
i
,
⋯
}
\{n_1·a_1,n_2·a_2\cdots,n_i·a_i,\cdots\}
{n1⋅a1,n2⋅a2⋯,ni⋅ai,⋯},第i种元素
a
i
a_i
ai有
n
i
n_i
ni个,
n
i
n_i
ni为非负数
设
h
n
h_n
hn为S的n排列数,数列
{
h
0
,
h
1
,
⋯
,
h
n
⋯
}
\{h_0,h_1,\cdots,h_n\cdots\}
{h0,h1,⋯,hn⋯}的指数型生成函数为
A
(
x
)
=
1
(
1
+
1
x
)
(
1
+
x
1
+
x
2
2
!
)
⋯
(
1
+
x
1
+
⋯
+
x
k
k
!
)
⋯
=
∑
i
=
0
∞
h
i
x
i
i
!
A(x)=1(1+\cfrac{1}{x})(1+\cfrac{x}{1}+\cfrac{x^2}{2!})\cdots(1+\cfrac{x}{1}+\cdots+\cfrac{x^k}{k!})\cdots=\displaystyle\sum_{i=0}^{\infty}h_i\cfrac{x^i}{i!}
A(x)=1(1+x1)(1+1x+2!x2)⋯(1+1x+⋯+k!xk)⋯=i=0∑∞hii!xi
对式子展开后,每一个单项式形式为
x
m
1
x
m
2
⋯
x
m
k
m
1
!
m
2
!
⋯
m
k
!
=
x
m
1
+
m
2
+
⋯
+
m
k
m
1
!
m
2
!
⋯
m
k
!
\cfrac{x^{m_1}x^{m_2}\cdots x^{m_k}}{m_1!m_2!\cdots m_k!}=\cfrac{x^{m_1+m_2+\cdots+m_k}}{m_1!m_2!\cdots m_k!}
m1!m2!⋯mk!xm1xm2⋯xmk=m1!m2!⋯mk!xm1+m2+⋯+mk
我们设
n
=
m
1
+
m
2
+
⋯
+
m
k
n=m_1+m_2+\cdots+m_k
n=m1+m2+⋯+mk
所以上式又等于
x
n
m
1
!
m
2
!
⋯
m
k
!
=
n
!
x
n
m
1
!
m
2
!
⋯
m
k
!
n
!
=
n
!
m
1
!
m
2
!
⋯
m
k
!
⋅
x
n
n
!
\cfrac{x^n}{m_1!m_2!\cdots m_k!}=\cfrac{n!x^n}{m_1!m_2!\cdots m_k!n!}=\cfrac{n!}{m_1!m_2!\cdots m_k!}·\cfrac{x^n}{n!}
m1!m2!⋯mk!xn=m1!m2!⋯mk!n!n!xn=m1!m2!⋯mk!n!⋅n!xn
故
h
n
=
∑
n
=
m
1
+
m
2
+
⋯
+
m
k
n
!
m
1
!
m
2
!
⋯
m
k
!
h_n=\displaystyle\sum_{n=m_1+m_2+\cdots+m_k}\cfrac{n!}{m_1!m_2!\cdots m_k!}
hn=n=m1+m2+⋯+mk∑m1!m2!⋯mk!n!
例1:用红白蓝三种颜色染色一个1×n的格子,其中红色要求染色偶数次,求染色方法数
A
(
x
)
=
(
1
+
x
2
2
!
+
x
4
4
!
+
⋯
)
(
1
+
x
+
x
2
2
!
+
⋯
)
(
1
+
x
+
x
2
2
!
+
⋯
)
=
e
x
+
e
−
x
2
⋅
e
x
⋅
e
x
=
e
3
x
+
e
x
2
=
1
2
(
∑
n
=
0
∞
3
n
x
n
n
!
+
∑
n
=
0
∞
x
n
n
!
)
=
1
2
∑
n
=
0
∞
(
3
n
+
1
)
x
n
n
!
\begin{aligned}A(x)&=(1+\cfrac{x^2}{2!}+\cfrac{x^4}{4!}+\cdots)(1+x+\cfrac{x^2}{2!}+\cdots)(1+x+\cfrac{x^2}{2!}+\cdots)\\ &=\cfrac{e^x+e^{-x}}{2}·e^x·e^x\\ &=\cfrac{e^{3x}+e^x}{2}\\ &=\cfrac{1}{2}(\sum_{n=0}^{\infty}3^n\cfrac{x^n}{n!}+\sum_{n=0}^{\infty}\cfrac{x^n}{n!})\\ &=\cfrac{1}{2}\sum_{n=0}^{\infty}(3^n+1)\cfrac{x^n}{n!} \end{aligned}
A(x)=(1+2!x2+4!x4+⋯)(1+x+2!x2+⋯)(1+x+2!x2+⋯)=2ex+e−x⋅ex⋅ex=2e3x+ex=21(n=0∑∞3nn!xn+n=0∑∞n!xn)=21n=0∑∞(3n+1)n!xn
故染色方法数
h
n
=
3
n
+
1
2
h_n=\cfrac{3^n+1}{2}
hn=23n+1
例2:用1、2、3、4四个数字组成一个五位数,其中1出现两次或三次,2最多出现一次,4出现偶数次
A
(
x
)
=
(
x
2
2
!
+
x
3
3
!
)
(
1
+
x
)
(
1
+
x
+
x
2
2
!
+
⋯
)
(
1
+
x
2
2
!
+
x
4
4
!
+
⋯
)
=
(
3
x
2
+
x
3
6
)
(
1
+
x
)
e
x
(
e
x
+
e
−
x
2
)
=
1
12
(
3
x
2
+
4
x
3
+
x
4
)
(
e
2
x
+
1
)
=
1
12
(
3
x
2
+
4
x
3
+
x
4
)
(
∑
n
=
0
∞
2
n
x
n
n
!
+
1
)
\begin{aligned}A(x)&=(\cfrac{x^2}{2!}+\cfrac{x^3}{3!})(1+x)(1+x+\cfrac{x^2}{2!}+\cdots)(1+\cfrac{x^2}{2!}+\cfrac{x^4}{4!}+\cdots)\\ &=(\cfrac{3x^2+x^3}{6})(1+x)e^x(\cfrac{e^x+e^{-x}}{2})\\ &=\cfrac{1}{12}(3x^2+4x^3+x^4)(e^{2x}+1)\\ &=\cfrac{1}{12}(3x^2+4x^3+x^4)(\sum_{n=0}^{\infty}2^n\cfrac{x^n}{n!}+1)\\ \end{aligned}
A(x)=(2!x2+3!x3)(1+x)(1+x+2!x2+⋯)(1+2!x2+4!x4+⋯)=(63x2+x3)(1+x)ex(2ex+e−x)=121(3x2+4x3+x4)(e2x+1)=121(3x2+4x3+x4)(n=0∑∞2nn!xn+1)
故组成方案数
h
5
=
1
12
⋅
5
!
(
3
⋅
2
3
3
!
+
4
⋅
2
2
2
!
+
2
1
)
=
140
h_5=\cfrac{1}{12}·5!(3·\cfrac{2^3}{3!}+4·\cfrac{2^2}{2!}+\cfrac{2}{1})=140
h5=121⋅5!(3⋅3!23+4⋅2!22+12)=140