前两讲介绍了一些用基本恒等式证明组合恒等式的技巧,但这些也仅仅只是技巧,在证明过程中的某一步能起到关键作用,不能提供具有一般性的证明组合恒等式的范式。这种一般性的范式有许多,比如母函数方法、差分方法和复数方法等,这个系列博文后续的目标就是逐一介绍这些证明范式。
母函数与母函数方法
数列
{
a
n
}
,
n
=
1
,
2
,
⋯
\{a_n\},n=1,2,\cdots
{an},n=1,2,⋯的母函数是
p
(
x
)
=
∑
n
=
1
∞
a
n
x
n
p(x) = \sum_{n=1}^{\infty} a_n x^n
p(x)=n=1∑∞anxn
比如数列
{
C
n
k
}
,
k
=
0
,
1
,
⋯
,
n
\{C_n^k\},k=0,1,\cdots,n
{Cnk},k=0,1,⋯,n的母函数是
∑
k
=
0
n
C
n
k
x
k
=
(
1
+
x
)
n
\sum_{k=0}^n C_n^kx^k = (1+x)^n
k=0∑nCnkxk=(1+x)n
数列与母函数是一一对应的,因此用母函数证明组合恒等式的方法是论述组合恒等式两端的数列的母函数相等。
形式幂级数
称 ∑ n = 1 ∞ a n x n \sum_{n=1}^{\infty} a_n x^n ∑n=1∞anxn这种式子为形式幂级数,简单理解形式幂级数也就是它被写成幂级数的样子但不是用来讨论收敛性的,下面定义形式幂级数的四则运算。
定义1 两个形式幂级数的线性运算
∀
k
,
h
∈
R
,
k
∑
n
=
1
∞
a
n
x
n
+
h
∑
n
=
1
∞
b
n
x
n
=
∑
n
=
1
∞
(
k
a
n
+
h
b
n
)
x
n
\forall k,h \in \mathbb{R},\ k\sum_{n=1}^{\infty} a_n x^n + h\sum_{n=1}^{\infty} b_n x^n = \sum_{n=1}^{\infty}(ka_n + hb_n) x^n
∀k,h∈R, kn=1∑∞anxn+hn=1∑∞bnxn=n=1∑∞(kan+hbn)xn
定义2 两个形式幂级数的乘积(Cauchy乘积)
(
∑
n
=
1
∞
a
n
x
n
)
(
∑
n
=
1
∞
b
n
x
n
)
=
∑
n
=
1
∞
c
n
x
n
,
c
n
=
∑
k
=
0
n
a
k
b
n
−
k
\left( \sum_{n=1}^{\infty} a_n x^n\right) \left( \sum_{n=1}^{\infty} b_n x^n\right) = \sum_{n=1}^{\infty}c_nx^n,\ c_n =\sum_{k=0}^n a_k b_{n-k}
(n=1∑∞anxn)(n=1∑∞bnxn)=n=1∑∞cnxn, cn=k=0∑nakbn−k
例如,
(
∑
n
=
0
∞
x
n
)
2
=
∑
n
=
1
∞
∑
k
=
0
n
x
n
=
∑
n
=
1
∞
(
n
+
1
)
x
n
\left( \sum_{n=0}^{\infty} x_n \right)^2 = \sum_{n=1}^{\infty}\sum_{k=0}^nx^n = \sum_{n=1}^{\infty}(n+1)x^n
(n=0∑∞xn)2=n=1∑∞k=0∑nxn=n=1∑∞(n+1)xn
又比如,
(
∑
n
=
1
∞
a
n
x
n
)
(
∑
n
=
1
∞
x
n
)
=
∑
n
=
1
∞
∑
k
=
0
n
a
k
x
n
=
∑
n
=
1
∞
(
a
0
+
a
1
+
⋯
+
a
n
)
x
n
\left( \sum_{n=1}^{\infty} a_n x^n\right) \left( \sum_{n=1}^{\infty} x^n\right) = \sum_{n=1}^{\infty}\sum_{k=0}^n a_k x^n = \sum_{n=1}^{\infty} (a_0+a_1+\cdots + a_n) x^n
(n=1∑∞anxn)(n=1∑∞xn)=n=1∑∞k=0∑nakxn=n=1∑∞(a0+a1+⋯+an)xn
定义3 两个形式幂级数的商
假设
f
,
g
,
h
f,g,h
f,g,h是三个形式幂级数,如果
f
=
g
h
f=gh
f=gh,则称
f
f
f被
g
g
g除的商是
h
h
h。
几个非常有用的形式幂级数
下面这几个形式幂级数其实就是Taylor展开,
1
1
−
r
x
=
∑
n
=
0
∞
r
n
x
n
1
(
1
−
x
)
k
=
∑
n
=
0
∞
C
n
+
k
−
1
k
−
1
x
n
(
1
+
x
)
k
=
∑
n
=
0
∞
C
k
n
x
n
\frac{1}{1-rx} = \sum_{n=0}^{\infty} r^nx^n \\ \frac{1}{(1-x)^k} = \sum_{n=0}^{\infty} C_{n+k-1}^{k-1}x^n \\ (1+x)^k = \sum_{n=0}^{\infty} C_k^nx^n
1−rx1=n=0∑∞rnxn(1−x)k1=n=0∑∞Cn+k−1k−1xn(1+x)k=n=0∑∞Cknxn
第三个式子的
k
k
k可以取任意实数,
C
k
n
C_k^n
Ckn同样按组合数的形式计算,可以尝试用它来推导一个比较重要的形式幂级数
(
1
−
4
x
)
−
1
/
2
=
∑
n
=
0
∞
C
−
1
/
2
n
(
−
4
x
)
n
(1-4x)^{-1/2} = \sum_{n=0}^{\infty} C_{-1/2}^n(-4x)^n
(1−4x)−1/2=n=0∑∞C−1/2n(−4x)n
计算
C
−
1
/
2
n
4
n
=
(
−
1
/
2
)
(
−
3
/
2
)
(
−
5
/
2
)
⋯
[
−
(
2
n
−
1
)
/
2
]
n
!
(
−
4
)
n
=
2
n
(
2
n
−
1
)
!
!
n
!
=
2
n
(
2
n
)
!
n
!
(
2
n
)
!
!
=
(
2
n
)
!
n
!
n
!
=
C
2
n
n
C_{-1/2}^n 4^n = \frac{(-1/2)(-3/2)(-5/2)\cdots [-(2n-1)/2]}{n!}(-4)^n \\ = 2^n\frac{(2n-1)!! }{n!} = 2^n\frac{(2n)!}{n!(2n)!!} = \frac{(2n)!}{n!n!} = C_{2n}^n
C−1/2n4n=n!(−1/2)(−3/2)(−5/2)⋯[−(2n−1)/2](−4)n=2nn!(2n−1)!!=2nn!(2n)!!(2n)!=n!n!(2n)!=C2nn
因此我们就得到了
{
C
2
n
n
}
\{C_{2n}^n\}
{C2nn}的母函数,
(
1
−
4
x
)
−
1
/
2
=
∑
n
=
0
∞
C
2
n
n
x
n
(1-4x)^{-1/2} = \sum_{n=0}^{\infty} C_{2n}^nx^n
(1−4x)−1/2=n=0∑∞C2nnxn
也可以用第三个式子说明一下第二个式子:
(
1
−
x
)
−
k
=
∑
n
=
0
∞
C
−
k
n
(
−
x
)
n
(1-x)^{-k} = \sum_{n=0}^{\infty} C_{-k}^n(-x)^n
(1−x)−k=n=0∑∞C−kn(−x)n
计算系数
(
−
1
)
n
C
−
k
n
=
(
−
1
)
n
(
−
k
)
(
−
k
−
1
)
⋯
(
−
k
−
n
+
1
)
n
!
=
(
n
+
k
−
1
)
!
n
!
(
k
−
1
)
!
=
C
n
+
k
−
1
k
−
1
(-1)^nC_{-k}^n = (-1)^n\frac{(-k)(-k-1)\cdots(-k-n+1)}{n!} = \frac{(n+k-1)!}{n!(k-1)!} =C_{n+k-1}^{k-1}
(−1)nC−kn=(−1)nn!(−k)(−k−1)⋯(−k−n+1)=n!(k−1)!(n+k−1)!=Cn+k−1k−1
定义4 两个形式幂级数相等
∑
n
=
1
∞
a
n
x
n
=
∑
n
=
1
∞
b
n
x
n
⇔
a
n
=
b
n
,
∀
n
\sum_{n=1}^{\infty} a_n x^n = \sum_{n=1}^{\infty} b_n x^n \Leftrightarrow a_n = b_n,\forall n
n=1∑∞anxn=n=1∑∞bnxn⇔an=bn,∀n
这个定义提供了证明组合恒等式的一种范式,即通过母函数相等或具有相同母函数的形式幂级数对应项系数相等来证明组合恒等式,下面看一个简单的例子了解一下这种思路:
∑
k
=
0
n
(
C
n
k
)
2
=
C
2
n
n
\sum_{k=0}^n (C_n^k)^2 = C_{2n}^n
k=0∑n(Cnk)2=C2nn
等式右边是
(
1
+
x
)
2
n
(1+x)^{2n}
(1+x)2n的形式幂级数的第
x
n
x^n
xn项的系数,另外再考虑
(
1
+
x
)
2
n
=
[
(
1
+
x
)
n
]
2
=
(
∑
k
=
0
n
C
n
k
x
k
)
2
(1+x)^{2n} = [(1+x)^n]^2 = \left( \sum_{k=0}^n C_n^k x^k \right)^2
(1+x)2n=[(1+x)n]2=(k=0∑nCnkxk)2
其中
x
n
x^n
xn项的系数是
∑
k
=
0
n
C
n
k
C
n
n
−
k
=
∑
k
=
0
n
(
C
n
k
)
2
\sum_{k=0}^n C_n^k C_n^{n-k} = \sum_{k=0}^n (C_n^k)^2
k=0∑nCnkCnn−k=k=0∑n(Cnk)2
对应项系数相等所以 ∑ k = 0 n ( C n k ) 2 = C 2 n n \sum_{k=0}^n (C_n^k)^2 = C_{2n}^n ∑k=0n(Cnk)2=C2nn。
范德蒙公式
范德蒙公式是一个非常重要的组合恒等式,有时也被称为组合数的卷积公式:
∑
k
=
0
q
C
n
k
C
m
q
−
k
=
C
m
+
n
q
\sum_{k=0}^q C_n^kC_m^{q-k} = C_{m+n}^q
k=0∑qCnkCmq−k=Cm+nq
在证明组合恒等式时,范德蒙公式除了给出一个和式的结果外,还提供了一种组合数按卷积的拆项方法;在概率论中,这个公式也有非常重要的作用。我们可以把公式右边的组合数除到左边:
∑
k
=
0
q
C
n
k
C
m
q
−
k
C
m
+
n
q
=
1
\sum_{k=0}^q \frac{C_n^kC_m^{q-k}}{C_{m+n}^q} = 1
k=0∑qCm+nqCnkCmq−k=1
观察 C n k C m q − k C m + n q \frac{C_n^kC_m^{q-k}}{C_{m+n}^q} Cm+nqCnkCmq−k,它表示 m + n m+n m+n个零件中有 n n n个次品,现在从 m + n m+n m+n个零件中随机抽取 q q q个,抽到 k k k个次品的概率,这正好是超几何分布的概率分布列,因此范德蒙公式提供了超几何分布的归一化条件。下面简单证明一下范德蒙公式:
等式右边显然是
(
1
+
x
)
m
+
n
(1+x)^{m+n}
(1+x)m+n展开式的
x
q
x^q
xq项的系数,考虑
(
1
+
x
)
m
+
n
=
(
1
+
x
)
m
(
1
+
x
)
n
(1+x)^{m+n} = (1+x)^m (1+x)^n
(1+x)m+n=(1+x)m(1+x)n
这个分解的
x
q
x^q
xq项系数为
∑
k
=
0
q
C
n
k
C
m
q
−
k
=
∑
k
=
0
q
C
n
q
−
k
C
m
k
=
C
m
+
n
q
\sum_{k=0}^q C_n^k C_m^{q-k} = \sum_{k=0}^q C_n^{q-k} C_m^{k} = C_{m+n}^q
k=0∑qCnkCmq−k=k=0∑qCnq−kCmk=Cm+nq