容斥dp的数学基础
本文不涉及:
- 单位根反演
- min-max容斥
- 生成函数
- 集合幂级数
- 微积分
- 多项式计数
记号
- 集合: [ n ] = [ 1 , n ] ∩ Z [n]=[1,n]\cap\mathbb{Z} [n]=[1,n]∩Z
- 排列数: A n m = n m ‾ A^m_n=n^{\underline m} Anm=nm
- 环排列数: Q n = ( n − 1 ) ! Q_n=(n-1)! Qn=(n−1)!
- 环排列数: Q n m = n ! m ( n − m ) ! Q_n^m=\frac{n!}{m(n-m)!} Qnm=m(n−m)!n!
- 组合数: C n m = ( n m ) C^m_n=\begin{pmatrix}n\\m\end{pmatrix} Cnm=(nm)
- 无符号第一类斯特林数: [ n m ] \begin{bmatrix}n\\m\end{bmatrix} [nm]
- 表示 n n n个有标号元素划分到 m m m个无标号非空环排列的方案数,也即 n n n元集合划分为 m m m个非空环排列的方案数。
- 第二类斯特林数:
{
n
m
}
\begin{Bmatrix}n\\m\end{Bmatrix}
{nm}
表示 n n n个有标号元素划分到 m m m个无标号非空集合的方案数,也即 n n n元集合划分为 m m m个非空子集的方案数。 - 空集的补: i ∈ ∅ : i ‾ = U i\in\varnothing:\overline i=U i∈∅:i=U
对于超过定义范围的组合数、斯特林数等,均认为 0 0 0。
容斥原理
- 补集转换 : S = U − S ‾ 补集转换:S=U-\overline{ S} 补集转换:S=U−S
- 德 ⋅ 摩根定律 : ⋃ n i = 1 S i ‾ = ⋂ n i = 1 S i ‾ , ⋂ n i = 1 S i ‾ = ⋃ n i = 1 S i ‾ 德·摩根定律:\overline{\underset{i=1}{\overset{n}{\bigcup}}S_i}=\underset{i=1}{\overset{n}{\bigcap}}\overline{S_i},\overline{\underset{i=1}{\overset{n}{\bigcap}}S_i }=\underset{i=1}{\overset{n}{\bigcup}}\overline{S_i} 德⋅摩根定律:i=1⋃nSi=i=1⋂nSi,i=1⋂nSi=i=1⋃nSi
-
集合的并
:
∣
⋃
n
i
=
1
S
i
∣
=
∑
∅
≠
T
⊆
[
n
]
(
−
1
)
∣
T
∣
−
1
∣
⋂
i
∈
T
S
i
∣
集合的并:\left|\underset{i=1}{\overset{n}{\bigcup}}S_i \right|={\underset{\varnothing\not=T\subseteq [n]}{\overset{}\sum}}(-1)^{|T|-1}\left |{\underset{i\in T}{\overset{}\bigcap}}S_i\right |
集合的并:
i=1⋃nSi
=∅=T⊆[n]∑(−1)∣T∣−1
i∈T⋂Si
集合的并=集合的交的交错和(这里是奇加偶减),去掉模也成立。 -
集合的交
:
∣
⋂
n
i
=
1
S
i
∣
=
∑
T
⊆
[
n
]
(
−
1
)
∣
T
∣
∣
⋂
i
∈
T
S
i
‾
∣
集合的交:\left| {\underset{i=1}{\overset{n}\bigcap}}S_i\right|={\underset{T\subseteq [n]}{\overset{}\sum}}(-1)^{|T|}\left|{\underset{i\in T}{\bigcap}\overline{S_i}}\right|
集合的交:
i=1⋂nSi
=T⊆[n]∑(−1)∣T∣
i∈T⋂Si
集合的交=补集的交的交错和(这里是奇减偶加),去掉模也成立。
以上可归纳证明。
反演的本质
对于向量
F
,
G
F,G
F,G,有关系矩阵
H
H
H:
F
=
H
×
G
⇔
G
=
H
−
1
×
F
F=H\times G\Leftrightarrow G=H^{-1}\times F
F=H×G⇔G=H−1×F
则 G → F G\rightarrow F G→F称为变换,从 F ← G F\leftarrow G F←G称为反演。
二项式反演
- 二项式反演原理:
∑ n i = 0 ( n i ) ( − 1 ) n − i = ∑ n i = 0 ( n i ) ( − 1 ) i = [ n = 0 ] \underset{i=0}{\overset{n}\sum}\begin{pmatrix}n\\ i\end{pmatrix}(-1)^{n-i}=\underset{i=0}{\overset{n}\sum}\begin{pmatrix}n\\ i\end{pmatrix}(-1)^{i}=[n=0] i=0∑n(ni)(−1)n−i=i=0∑n(ni)(−1)i=[n=0]
备注,很明显这几个东西不成立:
∑
n
i
=
m
(
n
i
)
(
−
1
)
n
−
i
=
[
n
=
m
]
\underset{i=m}{\overset{n}\sum}\begin{pmatrix}n\\ i\end{pmatrix}(-1)^{n-i}=[n=m]
i=m∑n(ni)(−1)n−i=[n=m]
∑
m
i
=
n
(
i
n
)
(
−
1
)
i
−
n
=
[
n
=
m
]
\underset{i=n}{\overset m\sum}\begin{pmatrix}i\\n\end{pmatrix}(-1)^{i-n}=[n=m]
i=n∑m(in)(−1)i−n=[n=m]
- 二项式反演:
f ( n ) = ∑ n i = m ( n i ) g ( i ) ⇔ g ( n ) = ∑ n i = m ( n i ) ( − 1 ) n − i f ( i ) f(n)=\underset{i=m}{\overset{n}\sum}\begin{pmatrix}n\\ i\end{pmatrix}g(i)\Leftrightarrow g(n)=\underset{i=m}{\overset{n}\sum}\begin{pmatrix}n\\ i\end{pmatrix}(-1)^{n-i}f(i) f(n)=i=m∑n(ni)g(i)⇔g(n)=i=m∑n(ni)(−1)n−if(i)
f ( n ) = ∑ m i = n ( i n ) g ( i ) ⇔ g ( n ) = ∑ m i = n ( i n ) ( − 1 ) i − n f ( i ) f(n)=\underset{i=n}{\overset{m}\sum}\begin{pmatrix}i\\ n\end{pmatrix}g(i)\Leftrightarrow g(n)=\underset{i=n}{\overset{m}\sum}\begin{pmatrix}i\\ n\end{pmatrix}(-1)^{i-n}f(i) f(n)=i=n∑m(in)g(i)⇔g(n)=i=n∑m(in)(−1)i−nf(i)
∑
n
i
=
0
(
n
i
)
(
−
1
)
n
−
i
=
∑
n
i
=
0
(
n
i
)
(
−
1
)
i
=
[
n
=
0
]
\underset{i=0}{\overset{n}\sum}\begin{pmatrix}n\\ i\end{pmatrix}(-1)^{n-i}=\underset{i=0}{\overset{n}\sum}\begin{pmatrix}n\\ i\end{pmatrix}(-1)^{i}=[n=0]
i=0∑n(ni)(−1)n−i=i=0∑n(ni)(−1)i=[n=0]
证明:
我们有二项式定理:
(
1
−
1
)
n
=
∑
n
i
=
0
(
n
i
)
(
−
1
)
n
−
i
(1-1)^n=\underset{i=0}{\overset{n}\sum}\begin{pmatrix}n\\ i\end{pmatrix}(-1)^{n-i}
(1−1)n=i=0∑n(ni)(−1)n−i
QED.
f
(
n
)
=
∑
n
i
=
m
(
n
i
)
g
(
i
)
⇔
g
(
n
)
=
∑
n
i
=
m
(
n
i
)
(
−
1
)
n
−
i
f
(
i
)
f(n)=\underset{i=m}{\overset{n}\sum}\begin{pmatrix}n\\ i\end{pmatrix}g(i)\Leftrightarrow g(n)=\underset{i=m}{\overset{n}\sum}\begin{pmatrix}n\\ i\end{pmatrix}(-1)^{n-i}f(i)
f(n)=i=m∑n(ni)g(i)⇔g(n)=i=m∑n(ni)(−1)n−if(i)
证明:
只证明从左推右,反向同理:
g
(
n
)
=
∑
n
i
=
m
(
n
i
)
(
−
1
)
n
−
i
f
(
i
)
g(n)=\underset{i=m}{\overset{n}\sum}\begin{pmatrix}n\\ i\end{pmatrix}(-1)^{n-i}f(i)
g(n)=i=m∑n(ni)(−1)n−if(i)
反演一般的思路都考虑将
f
(
i
)
f(i)
f(i)定义带入:
=
∑
n
i
=
m
(
n
i
)
(
−
1
)
n
−
i
∑
i
j
=
m
(
i
j
)
g
(
j
)
=\underset{i=m}{\overset{n}\sum}\begin{pmatrix}n\\ i\end{pmatrix}(-1)^{n-i}\underset{j=m}{\overset{i}\sum}\begin{pmatrix}i\\ j\end{pmatrix}g(j)
=i=m∑n(ni)(−1)n−ij=m∑i(ij)g(j)
=
∑
n
i
=
m
∑
i
j
=
m
(
n
i
)
(
i
j
)
(
−
1
)
n
−
i
g
(
j
)
=\underset{i=m}{\overset{n}\sum}\underset{j=m}{\overset{i}\sum}\begin{pmatrix}n\\ i\end{pmatrix}\begin{pmatrix}i\\ j\end{pmatrix}(-1)^{n-i}g(j)
=i=m∑nj=m∑i(ni)(ij)(−1)n−ig(j)
若
j
>
i
j>i
j>i超过范围的组合数认为是
0
0
0,因此我们可以扩大枚举范围:
=
∑
n
i
=
m
∑
n
j
=
m
(
n
i
)
(
i
j
)
(
−
1
)
n
−
i
g
(
j
)
=\underset{i=m}{\overset{n}\sum}\underset{j=m}{\overset{n}\sum}\begin{pmatrix}n\\ i\end{pmatrix}\begin{pmatrix}i\\ j\end{pmatrix}(-1)^{n-i}g(j)
=i=m∑nj=m∑n(ni)(ij)(−1)n−ig(j)
分离组合数:
=
∑
n
i
=
m
∑
n
j
=
m
(
n
j
)
(
n
−
j
i
−
j
)
(
−
1
)
n
−
i
g
(
j
)
=\underset{i=m}{\overset{n}\sum}\underset{j=m}{\overset{n}\sum}\begin{pmatrix}n\\ j\end{pmatrix}\begin{pmatrix}n-j\\ i-j\end{pmatrix}(-1)^{n-i}g(j)
=i=m∑nj=m∑n(nj)(n−ji−j)(−1)n−ig(j)
=
∑
n
j
=
m
(
n
j
)
g
(
j
)
∑
n
i
=
m
(
n
−
j
i
−
j
)
(
−
1
)
n
−
i
=\underset{j=m}{\overset{n}\sum}\begin{pmatrix}n\\ j\end{pmatrix}g(j)\underset{i=m}{\overset{n}\sum}\begin{pmatrix}n-j\\ i-j\end{pmatrix}(-1)^{n-i}
=j=m∑n(nj)g(j)i=m∑n(n−ji−j)(−1)n−i
=
∑
n
j
=
m
(
n
j
)
g
(
j
)
∑
n
i
=
j
(
n
−
j
i
−
j
)
(
−
1
)
n
−
i
=\underset{j=m}{\overset{n}\sum}\begin{pmatrix}n\\ j\end{pmatrix}g(j)\underset{i=j}{\overset{n}\sum}\begin{pmatrix}n-j\\ i-j\end{pmatrix}(-1)^{n-i}
=j=m∑n(nj)g(j)i=j∑n(n−ji−j)(−1)n−i
替换指标变量:
=
∑
n
j
=
m
(
n
j
)
g
(
j
)
∑
n
−
j
i
=
j
(
n
−
j
i
)
(
−
1
)
(
n
−
j
)
−
i
=\underset{j=m}{\overset{n}\sum}\begin{pmatrix}n\\ j\end{pmatrix}g(j)\underset{i=j}{\overset{n-j}\sum}\begin{pmatrix}n-j\\ i\end{pmatrix}(-1)^{(n-j)-i}
=j=m∑n(nj)g(j)i=j∑n−j(n−ji)(−1)(n−j)−i
=
∑
n
j
=
m
(
n
j
)
g
(
j
)
[
n
−
j
=
0
]
=\underset{j=m}{\overset{n}\sum}\begin{pmatrix}n\\ j\end{pmatrix}g(j)[n-j=0]
=j=m∑n(nj)g(j)[n−j=0]
=
∑
n
j
=
m
(
n
j
)
g
(
j
)
[
n
=
j
]
=\underset{j=m}{\overset{n}\sum}\begin{pmatrix}n\\ j\end{pmatrix}g(j)[n=j]
=j=m∑n(nj)g(j)[n=j]
=
g
(
n
)
=g(n)
=g(n)
QED.
f
(
n
)
=
∑
m
i
=
n
(
i
n
)
g
(
i
)
⇔
g
(
n
)
=
∑
m
i
=
n
(
i
n
)
(
−
1
)
i
−
n
f
(
i
)
f(n)=\underset{i=n}{\overset{m}\sum}\begin{pmatrix}i\\ n\end{pmatrix}g(i)\Leftrightarrow g(n)=\underset{i=n}{\overset{m}\sum}\begin{pmatrix}i\\ n\end{pmatrix}(-1)^{i-n}f(i)
f(n)=i=n∑m(in)g(i)⇔g(n)=i=n∑m(in)(−1)i−nf(i)
证明从左向右:
g
(
n
)
=
∑
m
i
=
n
(
i
n
)
(
−
1
)
i
−
n
f
(
i
)
g(n)=\underset{i=n}{\overset{m}\sum}\begin{pmatrix}i\\ n\end{pmatrix}(-1)^{i-n}f(i)
g(n)=i=n∑m(in)(−1)i−nf(i)
=
∑
m
i
=
n
(
i
n
)
(
−
1
)
i
−
n
∑
m
j
=
i
(
j
i
)
g
(
j
)
=\underset{i=n}{\overset{m}\sum}\begin{pmatrix}i\\ n\end{pmatrix}(-1)^{i-n}\underset{j=i}{\overset{m}\sum}\begin{pmatrix}j\\ i\end{pmatrix}g(j)
=i=n∑m(in)(−1)i−nj=i∑m(ji)g(j)
=
∑
m
i
=
n
∑
m
j
=
i
(
j
i
)
(
i
n
)
(
−
1
)
i
−
n
g
(
j
)
=\underset{i=n}{\overset{m}\sum}\underset{j=i}{\overset{m}\sum}\begin{pmatrix}j\\ i\end{pmatrix}\begin{pmatrix}i\\ n\end{pmatrix}(-1)^{i-n}g(j)
=i=n∑mj=i∑m(ji)(in)(−1)i−ng(j)
同理可以改变枚举范围:
=
∑
m
i
=
n
∑
m
j
=
n
(
j
i
)
(
i
n
)
(
−
1
)
i
−
n
g
(
j
)
=\underset{i=n}{\overset{m}\sum}\underset{j=n}{\overset{m}\sum}\begin{pmatrix}j\\ i\end{pmatrix}\begin{pmatrix}i\\ n\end{pmatrix}(-1)^{i-n}g(j)
=i=n∑mj=n∑m(ji)(in)(−1)i−ng(j)
(这里改变枚举范围是因为有组合数的限制,其实我们为了改变枚举范围完全可以手动创造一个限制,在和式的变换里面写了。)
=
∑
m
i
=
n
∑
m
j
=
n
(
j
n
)
(
j
−
n
i
−
n
)
(
−
1
)
i
−
n
g
(
j
)
=\underset{i=n}{\overset{m}\sum}\underset{j=n}{\overset{m}\sum}\begin{pmatrix}j\\ n\end{pmatrix}\begin{pmatrix}j-n\\ i-n\end{pmatrix}(-1)^{i-n}g(j)
=i=n∑mj=n∑m(jn)(j−ni−n)(−1)i−ng(j)
=
∑
m
j
=
n
g
(
j
)
(
j
n
)
∑
m
i
=
n
(
j
−
n
i
−
n
)
(
−
1
)
i
−
n
=\underset{j=n}{\overset{m}\sum}g(j)\begin{pmatrix}j\\ n\end{pmatrix}\underset{i=n}{\overset{m}\sum}\begin{pmatrix}j-n\\ i-n\end{pmatrix}(-1)^{i-n}
=j=n∑mg(j)(jn)i=n∑m(j−ni−n)(−1)i−n
=
∑
m
j
=
n
g
(
j
)
(
j
n
)
∑
m
−
n
i
=
0
(
j
−
n
i
)
(
−
1
)
i
=\underset{j=n}{\overset{m}\sum}g(j)\begin{pmatrix}j\\ n\end{pmatrix}\underset{i=0}{\overset{m-n}\sum}\begin{pmatrix}j-n\\ i\end{pmatrix}(-1)^{i}
=j=n∑mg(j)(jn)i=0∑m−n(j−ni)(−1)i
=
∑
m
j
=
n
g
(
j
)
(
j
n
)
∑
j
−
n
i
=
0
(
j
−
n
i
)
(
−
1
)
i
=\underset{j=n}{\overset{m}\sum}g(j)\begin{pmatrix}j\\ n\end{pmatrix}\underset{i=0}{\overset{j-n}\sum}\begin{pmatrix}j-n\\ i\end{pmatrix}(-1)^{i}
=j=n∑mg(j)(jn)i=0∑j−n(j−ni)(−1)i
=
∑
m
j
=
n
g
(
j
)
(
j
n
)
[
j
=
n
]
=\underset{j=n}{\overset{m}\sum}g(j)\begin{pmatrix}j\\ n\end{pmatrix}[j=n]
=j=n∑mg(j)(jn)[j=n]
=
g
(
n
)
=g(n)
=g(n)
斯特林反演
- ∑ n i = m [ n i ] { i m } ( − 1 ) i − m = [ n = m ] \underset{i=m}{\overset{n}\sum}\begin{bmatrix}n\\ i\end{bmatrix}\begin{Bmatrix}i\\ m\end{Bmatrix}(-1)^{i-m}=[n=m] i=m∑n[ni]{im}(−1)i−m=[n=m]
- ∑ n i = m { n i } [ i m ] ( − 1 ) i − m = [ n = m ] \underset{i=m}{\overset{n}\sum}\begin{Bmatrix}n\\ i\end{Bmatrix}\begin{bmatrix}i\\ m\end{bmatrix}(-1)^{i-m}=[n=m] i=m∑n{ni}[im](−1)i−m=[n=m]
- f ( n ) = ∑ n i = 0 [ n i ] g ( i ) ⇔ g ( n ) = ∑ n i = 0 { n i } ( − 1 ) n − i f ( i ) f(n)=\underset{i=0}{\overset{n}\sum}\begin{bmatrix}n\\ i\end{bmatrix}g(i)\Leftrightarrow g(n)=\underset{i=0}{\overset{n}\sum}\begin{Bmatrix}n\\ i\end{Bmatrix}(-1)^{n-i}f(i) f(n)=i=0∑n[ni]g(i)⇔g(n)=i=0∑n{ni}(−1)n−if(i)
- f ( n ) = ∑ m i = n [ i n ] g ( i ) ⇔ g ( n ) = ∑ m i = n { i n } ( − 1 ) i − n f ( i ) f(n)=\underset{i=n}{\overset{m}\sum}\begin{bmatrix}i\\ n\end{bmatrix}g(i)\Leftrightarrow g(n)=\underset{i=n}{\overset{m}\sum}\begin{Bmatrix}i\\ n\end{Bmatrix}(-1)^{i-n}f(i) f(n)=i=n∑m[in]g(i)⇔g(n)=i=n∑m{in}(−1)i−nf(i)
∑
n
i
=
m
{
n
i
}
[
i
m
]
(
−
1
)
i
−
m
=
[
n
=
m
]
\underset{i=m}{\overset{n}\sum}\begin{Bmatrix}n\\ i\end{Bmatrix}\begin{bmatrix}i\\ m\end{bmatrix}(-1)^{i-m}=[n=m]
i=m∑n{ni}[im](−1)i−m=[n=m]
证明:
首先我们需要知道:简单斯特林反演。
因此:
x
n
=
∑
n
i
=
0
{
n
i
}
x
i
‾
=
∑
n
i
=
0
{
n
i
}
∑
i
j
=
0
[
i
j
]
(
−
1
)
i
−
j
x
j
x^n=\underset{i=0}{\overset{n}\sum}\begin{Bmatrix}n\\i\end{Bmatrix}x^{\underline i}=\underset{i=0}{\overset{n}\sum}\begin{Bmatrix}n\\i\end{Bmatrix}{\underset{j=0}{\overset{i}\sum}}\begin{bmatrix}i\\j\end{bmatrix}(-1)^{i-j}x^j
xn=i=0∑n{ni}xi=i=0∑n{ni}j=0∑i[ij](−1)i−jxj
=
∑
n
i
=
0
∑
i
j
=
0
x
j
{
n
i
}
[
i
j
]
(
−
1
)
i
−
j
=\underset{i=0}{\overset{n}\sum}{\underset{j=0}{\overset{i}\sum}}x^j\begin{Bmatrix}n\\i\end{Bmatrix}\begin{bmatrix}i\\j\end{bmatrix}(-1)^{i-j}
=i=0∑nj=0∑ixj{ni}[ij](−1)i−j
=
∑
n
i
=
0
∑
n
j
=
0
x
j
{
n
i
}
[
i
j
]
(
−
1
)
i
−
j
=\underset{i=0}{\overset{n}\sum}{\underset{j=0}{\overset{n}\sum}}x^j\begin{Bmatrix}n\\i\end{Bmatrix}\begin{bmatrix}i\\j\end{bmatrix}(-1)^{i-j}
=i=0∑nj=0∑nxj{ni}[ij](−1)i−j
=
∑
n
j
=
0
x
j
∑
n
i
=
0
{
n
i
}
[
i
j
]
(
−
1
)
i
−
j
={\underset{j=0}{\overset{n}\sum}}x^j\underset{i=0}{\overset{n}\sum}\begin{Bmatrix}n\\i\end{Bmatrix}\begin{bmatrix}i\\j\end{bmatrix}(-1)^{i-j}
=j=0∑nxji=0∑n{ni}[ij](−1)i−j
=
∑
n
j
=
0
x
j
∑
n
i
=
j
{
n
i
}
[
i
j
]
(
−
1
)
i
−
j
={\underset{j=0}{\overset{n}\sum}}x^j\underset{i=j}{\overset{n}\sum}\begin{Bmatrix}n\\i\end{Bmatrix}\begin{bmatrix}i\\j\end{bmatrix}(-1)^{i-j}
=j=0∑nxji=j∑n{ni}[ij](−1)i−j
对比系数我们知道:
∑
n
i
=
j
{
n
i
}
[
i
j
]
(
−
1
)
i
−
j
=
[
j
=
n
]
\underset{i=j}{\overset{n}\sum}\begin{Bmatrix}n\\i\end{Bmatrix}\begin{bmatrix}i\\j\end{bmatrix}(-1)^{i-j}=[j=n]
i=j∑n{ni}[ij](−1)i−j=[j=n]
QED.
∑ n i = m [ n i ] { i m } ( − 1 ) i − m = [ n = m ] \underset{i=m}{\overset{n}\sum}\begin{bmatrix}n\\ i\end{bmatrix}\begin{Bmatrix}i\\ m\end{Bmatrix}(-1)^{i-m}=[n=m] i=m∑n[ni]{im}(−1)i−m=[n=m],的证明,有类似的过程。
其他证明也是平凡的。
莫比乌斯反演
- ∑ d ∣ n μ ( d ) = [ n = 1 ] \underset{d|n}\sum \mu(d)=[n=1] d∣n∑μ(d)=[n=1]
- ∑ d ∣ n m μ ( d ) = [ n = m ] \underset{d|\frac nm}\sum \mu(d)=[n=m] d∣mn∑μ(d)=[n=m]
- f ( n ) = ∑ d ∣ n g ( d ) ⇔ g ( n ) = ∑ d ∣ n μ ( n d ) f ( d ) f(n)=\underset{d|n}\sum g(d)\Leftrightarrow g(n)=\underset{d|n}\sum\mu\left(\frac nd\right)f(d) f(n)=d∣n∑g(d)⇔g(n)=d∣n∑μ(dn)f(d)
-
f
(
n
)
=
∑
n
∣
d
g
(
d
)
⇔
g
(
n
)
=
∑
n
∣
d
μ
(
d
n
)
f
(
d
)
f(n)=\underset{n|d}\sum g(d)\Leftrightarrow g(n)=\underset{n|d}\sum \mu\left(\frac dn\right)f(d)
f(n)=n∣d∑g(d)⇔g(n)=n∣d∑μ(nd)f(d)
这个式子看起来会求无穷次,但在实际问题中,通常 f , g f,g f,g函数在自变量大于一定的值时就恒为 0 0 0了。
证明详见:莫比乌斯反演
子集反演
- 子集反演原理:
∑ T ⊆ S ( − 1 ) ∣ S ∣ − ∣ T ∣ = [ S = ∅ ] \underset{T\subseteq S}\sum (-1)^{|S|-|T|}=[S=\varnothing] T⊆S∑(−1)∣S∣−∣T∣=[S=∅]
∑ S ⊆ T ( − 1 ) ∣ T ∣ − ∣ S ∣ = [ S = U ] \underset{S\subseteq T}\sum (-1)^{|T|-|S|}=[S=U] S⊆T∑(−1)∣T∣−∣S∣=[S=U] - 子集反演:
f ( S ) = ∑ T ⊆ S g ( T ) ⇔ g ( S ) = ∑ T ⊆ S ( − 1 ) ∣ S ∣ − ∣ T ∣ f ( T ) f(S)=\underset{T\subseteq S}\sum g(T)\Leftrightarrow g(S)=\underset{T\subseteq S}{\sum}(-1)^{|S|-|T|}f(T) f(S)=T⊆S∑g(T)⇔g(S)=T⊆S∑(−1)∣S∣−∣T∣f(T)
f ( S ) = ∑ S ⊆ T g ( T ) ⇔ g ( S ) = ∑ S ⊆ T ( − 1 ) ∣ T ∣ − ∣ S ∣ f ( T ) f(S)=\underset{S\subseteq T}\sum g(T)\Leftrightarrow g(S)=\underset{S\subseteq T}\sum (-1)^{|T|-|S|}f(T) f(S)=S⊆T∑g(T)⇔g(S)=S⊆T∑(−1)∣T∣−∣S∣f(T)
隐含条件 T ⊆ U T\subseteq U T⊆U
∑
T
⊆
S
(
−
1
)
∣
S
∣
−
∣
T
∣
=
[
S
=
∅
]
\underset{T\subseteq S}\sum (-1)^{|S|-|T|}=[S=\varnothing]
T⊆S∑(−1)∣S∣−∣T∣=[S=∅]
证明:
我们可以对于大小相等的
T
T
T同时计算,因此我们枚举一个
i
i
i表示
∣
T
∣
|T|
∣T∣,则大小为
i
i
i的
∣
T
∣
|T|
∣T∣共有
(
n
i
)
\begin{pmatrix}n\\i\end{pmatrix}
(ni)个,其贡献为
(
−
1
)
∣
S
∣
−
i
(-1)^{|S|-i}
(−1)∣S∣−i:
∑
T
⊆
S
(
−
1
)
∣
S
∣
−
∣
T
∣
=
∑
∣
S
∣
i
=
0
(
∣
S
∣
i
)
(
−
1
)
∣
S
∣
−
i
=
∑
∣
S
∣
i
=
0
(
∣
S
∣
i
)
(
−
1
)
i
=
[
∣
S
∣
=
0
]
=
[
S
=
∅
]
\underset{T\subseteq S}\sum (-1)^{|S|-|T|}=\underset{i=0}{\overset{|S|}\sum}\begin{pmatrix}|S|\\i\end{pmatrix}(-1)^{|S|-i}=\underset{i=0}{\overset{|S|}\sum}\begin{pmatrix}|S|\\i\end{pmatrix}(-1)^{i}=[|S|=0]=[S=\varnothing]
T⊆S∑(−1)∣S∣−∣T∣=i=0∑∣S∣(∣S∣i)(−1)∣S∣−i=i=0∑∣S∣(∣S∣i)(−1)i=[∣S∣=0]=[S=∅]
QED.
∑
S
⊆
T
(
−
1
)
∣
T
∣
−
∣
S
∣
=
[
S
=
U
]
\underset{S\subseteq T}\sum (-1)^{|T|-|S|}=[S=U]
S⊆T∑(−1)∣T∣−∣S∣=[S=U]
证明(设
U
U
U表示全集):
∑
S
⊆
T
(
−
1
)
∣
T
∣
−
∣
S
∣
=
∑
S
⊆
T
⊆
U
(
−
1
)
∣
T
∣
−
∣
S
∣
\underset{S\subseteq T}\sum (-1)^{|T|-|S|}=\underset{S\subseteq T\subseteq U}\sum (-1)^{|T|-|S|}
S⊆T∑(−1)∣T∣−∣S∣=S⊆T⊆U∑(−1)∣T∣−∣S∣
=
∑
T
⊆
U
−
S
(
−
1
)
∣
T
+
S
∣
−
∣
S
∣
=\underset{T\subseteq U-S}\sum (-1)^{|T+S|-|S|}
=T⊆U−S∑(−1)∣T+S∣−∣S∣
=
∑
T
⊆
U
−
S
(
−
1
)
∣
T
∣
=\underset{T\subseteq U-S}\sum (-1)^{|T|}
=T⊆U−S∑(−1)∣T∣
=
∑
∣
U
−
S
∣
i
=
0
(
∣
U
−
S
∣
i
)
(
−
1
)
i
=\underset{i=0}{\overset{|U-S|}\sum}\begin{pmatrix}|U-S|\\i\end{pmatrix}(-1)^{i}
=i=0∑∣U−S∣(∣U−S∣i)(−1)i
=
[
∣
U
−
S
∣
=
0
]
=[|U-S|=0]
=[∣U−S∣=0]
=
[
S
=
U
]
=[S=U]
=[S=U]
f
(
S
)
=
∑
T
⊆
S
g
(
T
)
⇔
g
(
S
)
=
∑
T
⊆
S
(
−
1
)
∣
S
∣
−
∣
T
∣
f
(
T
)
f(S)=\underset{T\subseteq S}\sum g(T)\Leftrightarrow g(S)=\underset{T\subseteq S}{\sum}(-1)^{|S|-|T|}f(T)
f(S)=T⊆S∑g(T)⇔g(S)=T⊆S∑(−1)∣S∣−∣T∣f(T)
证明:
g
(
S
)
=
∑
T
⊆
S
(
−
1
)
∣
S
∣
−
∣
T
∣
∑
P
⊆
T
g
(
P
)
g(S)=\underset{T\subseteq S}{\sum}(-1)^{|S|-|T|}\underset{P\subseteq T}\sum g(P)
g(S)=T⊆S∑(−1)∣S∣−∣T∣P⊆T∑g(P)
=
∑
T
⊆
S
∑
P
⊆
T
g
(
P
)
(
−
1
)
∣
S
∣
−
∣
T
∣
=\underset{T\subseteq S}{\sum}\underset{P\subseteq T}\sum g(P)(-1)^{|S|-|T|}
=T⊆S∑P⊆T∑g(P)(−1)∣S∣−∣T∣
=
∑
P
⊆
T
g
(
P
)
∑
P
⊆
T
⊆
S
(
−
1
)
∣
S
∣
−
∣
T
∣
=\underset{P\subseteq T}\sum g(P)\underset{P\subseteq T\subseteq S}{\sum}(-1)^{|S|-|T|}
=P⊆T∑g(P)P⊆T⊆S∑(−1)∣S∣−∣T∣
=
∑
P
⊆
T
g
(
P
)
∑
T
⊆
S
−
P
(
−
1
)
∣
S
∣
−
∣
T
+
P
∣
=\underset{P\subseteq T}\sum g(P)\underset{T\subseteq S-P}{\sum}(-1)^{|S|-|T+P|}
=P⊆T∑g(P)T⊆S−P∑(−1)∣S∣−∣T+P∣
=
∑
P
⊆
T
g
(
P
)
∑
T
⊆
S
−
P
(
−
1
)
∣
S
∣
−
∣
T
∣
−
∣
P
∣
=\underset{P\subseteq T}\sum g(P)\underset{T\subseteq S-P}{\sum}(-1)^{|S|-|T|-|P|}
=P⊆T∑g(P)T⊆S−P∑(−1)∣S∣−∣T∣−∣P∣
=
∑
P
⊆
T
g
(
P
)
∑
T
⊆
S
−
P
(
−
1
)
∣
S
−
P
∣
−
∣
T
∣
=\underset{P\subseteq T}\sum g(P)\underset{T\subseteq S-P}{\sum}(-1)^{|S-P|-|T|}
=P⊆T∑g(P)T⊆S−P∑(−1)∣S−P∣−∣T∣
=
∑
P
⊆
T
g
(
P
)
[
P
=
S
]
=\underset{P\subseteq T}\sum g(P)[P=S]
=P⊆T∑g(P)[P=S]
=
g
(
S
)
=g(S)
=g(S)
QED.
f
(
S
)
=
∑
S
⊆
T
g
(
T
)
⇔
g
(
S
)
=
∑
S
⊆
T
(
−
1
)
∣
T
∣
−
∣
S
∣
f
(
T
)
f(S)=\underset{S\subseteq T}\sum g(T)\Leftrightarrow g(S)=\underset{S\subseteq T}\sum (-1)^{|T|-|S|}f(T)
f(S)=S⊆T∑g(T)⇔g(S)=S⊆T∑(−1)∣T∣−∣S∣f(T)
证明:
g
(
S
)
=
∑
S
⊆
T
(
−
1
)
∣
T
∣
−
∣
S
∣
f
(
T
)
=
∑
S
⊆
T
(
−
1
)
∣
T
∣
−
∣
S
∣
∑
T
⊆
P
g
(
P
)
g(S)=\underset{S\subseteq T}\sum (-1)^{|T|-|S|}f(T)=\underset{S\subseteq T}\sum (-1)^{|T|-|S|}\underset{T\subseteq P}\sum g(P)
g(S)=S⊆T∑(−1)∣T∣−∣S∣f(T)=S⊆T∑(−1)∣T∣−∣S∣T⊆P∑g(P)
=
∑
S
⊆
T
∑
T
⊆
P
g
(
P
)
(
−
1
)
∣
T
∣
−
∣
S
∣
=\underset{S\subseteq T}\sum\underset{T\subseteq P}\sum g(P) (-1)^{|T|-|S|}
=S⊆T∑T⊆P∑g(P)(−1)∣T∣−∣S∣
=
∑
S
⊆
P
g
(
P
)
∑
S
⊆
T
⊆
P
(
−
1
)
∣
T
∣
−
∣
S
∣
=\underset{S\subseteq P}\sum g(P) \underset{S\subseteq T\subseteq P}\sum (-1)^{|T|-|S|}
=S⊆P∑g(P)S⊆T⊆P∑(−1)∣T∣−∣S∣
=
∑
S
⊆
P
g
(
P
)
∑
T
⊆
P
−
S
(
−
1
)
∣
T
+
S
∣
−
∣
S
∣
=\underset{S\subseteq P}\sum g(P) \underset{T\subseteq P-S}\sum (-1)^{|T+S|-|S|}
=S⊆P∑g(P)T⊆P−S∑(−1)∣T+S∣−∣S∣
=
∑
S
⊆
P
g
(
P
)
∑
T
⊆
P
−
S
(
−
1
)
∣
T
∣
=\underset{S\subseteq P}\sum g(P) \underset{T\subseteq P-S}\sum (-1)^{|T|}
=S⊆P∑g(P)T⊆P−S∑(−1)∣T∣
=
∑
S
⊆
P
g
(
P
)
[
P
=
S
]
=\underset{S\subseteq P}\sum g(P) [P=S]
=S⊆P∑g(P)[P=S]
=
g
(
S
)
=g(S)
=g(S)
QED.
高维反演
对于一维反演:
f
(
n
)
=
∑
n
i
=
0
h
(
n
,
i
)
g
(
i
)
⇐
g
(
n
)
=
∑
n
i
=
0
h
−
1
(
n
,
i
)
f
(
i
)
f(n)=\underset{i=0}{\overset n \sum}h(n,i)g(i)\Leftarrow g(n)=\underset{i=0}{\overset n\sum}h^{-1}(n,i)f(i)
f(n)=i=0∑nh(n,i)g(i)⇐g(n)=i=0∑nh−1(n,i)f(i)
f
′
(
n
)
=
∑
n
i
=
0
h
′
(
n
,
i
)
g
′
(
i
)
⇐
g
′
(
n
)
=
∑
n
i
=
0
h
′
−
1
(
n
,
i
)
f
′
(
i
)
f'(n)=\underset{i=0}{\overset n \sum}h'(n,i)g'(i)\Leftarrow g'(n)=\underset{i=0}{\overset n\sum}h'^{-1}(n,i)f'(i)
f′(n)=i=0∑nh′(n,i)g′(i)⇐g′(n)=i=0∑nh′−1(n,i)f′(i)
就会有:
f
(
n
,
m
)
=
∑
n
i
=
0
h
(
n
,
i
)
∑
m
j
=
0
h
′
(
m
,
j
)
g
(
i
,
j
)
⇔
g
(
n
,
m
)
=
∑
n
i
=
0
h
−
1
(
n
,
i
)
∑
m
j
=
0
h
′
−
1
(
m
,
j
)
f
(
i
,
j
)
f(n,m)=\underset{i=0}{\overset n \sum}h(n,i)\underset{j=0}{\overset m \sum}h'(m,j)g(i,j)\Leftrightarrow g(n,m)=\underset{i=0}{\overset n \sum}h^{-1}(n,i)\underset{j=0}{\overset m \sum}h'^{-1}(m,j)f(i,j)
f(n,m)=i=0∑nh(n,i)j=0∑mh′(m,j)g(i,j)⇔g(n,m)=i=0∑nh−1(n,i)j=0∑mh′−1(m,j)f(i,j)
证明请读者自己编一个吧,也不难。
后记
于是皆大欢喜。