反演概述
反演方法是一种求解序列的方法,这种方法可以把一个序列用另一个序列表示出来。
粗略来说,就是根据两个序列
{f(n)}
{
f
(
n
)
}
和
{g(n)}
{
g
(
n
)
}
所满足的特殊关系,给出它们的相互表示方法。
具体来说,为了得到某个组合计数问题的解,我们首先求出相应序列
f(n)
f
(
n
)
所满足的(累计)关系式
其中, g(n) g ( n ) 是已知序列,然后从中解出
(1) ( 1 ) 与 (2) ( 2 ) 两式互为反演公式。
- 互逆公式:若由公式 A A 可推出公式,由公式 B B 也能推出公式,则称公式 A A 、互逆。
- 反演公式:如果公式 A A 、互逆,则称命题“公式 A A 成立当且仅当公式成立”是反演公式。
- 反演技巧:为了求
an=|An|
a
n
=
|
A
n
|
,引进
bn=|Bn|
b
n
=
|
B
n
|
,其中
bn
b
n
是易求的或者已知的。先建立
bn
b
n
由
{ak}
{
a
k
}
的表达公式
A
A
,然后应用反演公式,得到公式 ,此公式是用
{bk}
{
b
k
}
表示
an
a
n
的公式,从而求出
an
a
n
。
第一反演公式
定理(第一反演公式):设
n
n
是一个自然数,多项式序列,
{qn}
{
q
n
}
(其中
pn,qn
p
n
,
q
n
均为
n
n
次多项式)有下列关系
且 αii≠0,βii≠0 α i i ≠ 0 , β i i ≠ 0 ,则
证明:令
于是, p=Aq=ABp p = A q = A B p .由于p是线性空间 R[x] R [ x ] 的一组基,所以 AB=I A B = I ,于是 A−1=B A − 1 = B 所以 v=Au⇔u=A−1v=Bv v = A u ⇔ u = A − 1 v = B v
二项式反演公式
定理(二项式反演公式): 假设有两个序列
{an},{bn}
{
a
n
}
,
{
b
n
}
,则
定理证明:
例(错排问题):在 n n 个数字形成的个排列中,满足 ai≠i a i ≠ i 的排列有多少个?
解决这一问题有以下三种方法
1. 可以通过建立递推关系 Dn=(n−1)(Dn−1+Dn−2) D n = ( n − 1 ) ( D n − 1 + D n − 2 )
2. 利用容斥原理
3. 利用二项式反演公式
利用二项式反演公式主要过程如下:
记 Di D i 为恰好有 i i 个数字不在原来的位置上的排列的数目,则有,由二项式反演公式,可以得到 Dn=∑nk=0(−1)n−k(nk)n!=n!∑nr=0(−1)r1r! D n = ∑ k = 0 n ( − 1 ) n − k ( n k ) n ! = n ! ∑ r = 0 n ( − 1 ) r 1 r !