1. 问题引入
主要用来解决集合的计数问题。
最常见的应用题,A活动多少人,B活动多少人,AB两活动多少人之类的。
两三个集合的时候还能画图进行识别,三个以上的集合则看不太出来了。
2. 公式
∣ ⋃ i = 1 n A i ∣ = ∑ 1 ≤ i ≤ m ∣ A i ∣ − ∑ 1 ≤ i < j ≤ m ∣ A i ∩ A j ∣ + ∑ 1 ≤ i < j < k ≤ m ∣ A i ∩ A j ∩ A k ∣ − . . . + ( − 1 ) m − 1 ∣ A 1 ∩ A 2 ∩ A 3 . . . ∩ A m ∣ \left\vert \bigcup_{i=1}^{n}A_i\right\vert = \sum_{1\le i \le m}\left\vert A_i \right\vert - \sum_{1\le i \lt j \le m} \left\vert A_i \cap A_j\right\vert + \sum_{1 \le i \lt j \lt k \le m} \left\vert A_i \cap A_j \cap A_k\right\vert- ... +(-1)^{m-1}\left\vert A_1 \cap A_2 \cap A_3 ...\cap A_m\right\vert i=1⋃nAi =1≤i≤m∑∣Ai∣−1≤i<j≤m∑∣Ai∩Aj∣+1≤i<j<k≤m∑∣Ai∩Aj∩Ak∣−...+(−1)m−1∣A1∩A2∩A3...∩Am∣
3. 证明一:数学归纳法
简记
1
−
n
1-n
1−n的集合为
[
n
]
:
=
{
1
,
2
,
3...
,
n
}
[n] :=\{ 1,2,3...,n\}
[n]:={1,2,3...,n}
表示
1
−
n
1-n
1−n的整数形成的所有可能的集合。
原公式化简为
∣
⋃
i
=
1
n
A
i
∣
=
∑
J
⊆
[
n
]
J
≠
∅
(
−
1
)
∣
J
∣
−
1
∣
⋂
i
∈
J
A
i
∣
\begin{align} \left\vert \bigcup_{i=1}^{n}A_i \right\vert= \sum_{\substack{J \subseteq [n]\\J \ne \empty}}(-1)^{\substack{|J|-1}} \left\vert \bigcap_{\substack{i \in J}}A_i\right\vert \end{align}
i=1⋃nAi
=J⊆[n]J=∅∑(−1)∣J∣−1
i∈J⋂Ai
当
n
=
1
n=1
n=1时
∣
A
1
∣
=
(
−
1
)
1
−
1
∣
⋂
i
∈
{
1
}
A
1
∣
=
∣
A
1
∣
\left\vert A_1\right\vert= (-1)^{1-1} \left\vert \bigcap_{i \in \{1\}}A_1\right\vert= \left\vert A_1\right\vert
∣A1∣=(−1)1−1
i∈{1}⋂A1
=∣A1∣
成立。
当公式为
n
n
n时
∣
⋃
i
=
1
n
A
i
∣
=
∣
A
n
∪
⋃
i
=
1
n
−
1
A
i
∣
\left\vert \bigcup_{i=1}^{n}A_i\right\vert= \left\vert A_n \cup \bigcup_{i=1}^{n-1}A_i \right\vert
i=1⋃nAi
=
An∪i=1⋃n−1Ai
根据公式
∣
A
∪
B
∣
=
∣
A
∣
+
∣
B
∣
−
∣
A
∩
B
∣
\left\vert A \cup B \right\vert= \left\vert A \right\vert+ \left\vert B \right\vert- \left\vert A \cap B\right\vert
∣A∪B∣=∣A∣+∣B∣−∣A∩B∣
可化简为
∣
A
n
∪
⋃
i
=
1
n
A
i
∣
=
∣
(
⋃
i
=
1
n
−
1
A
i
)
∣
=
∣
⋃
i
=
1
n
−
1
A
i
∣
+
∣
A
n
∣
−
∣
A
n
∩
⋃
i
=
1
n
−
1
A
i
∣
\begin{align} \left\vert A_n \cup\bigcup_{i=1}^{n}A_i\right\vert &= \left\vert (\bigcup_{i=1}^{n-1}A_i) \right\vert \\&= \left\vert \bigcup_{i=1}^{n-1} A_i\right\vert + \left\vert A_n\right\vert- \left\vert A_n \cap \bigcup_{i=1}^{n-1}A_i \right\vert \end{align}
An∪i=1⋃nAi
=
(i=1⋃n−1Ai)
=
i=1⋃n−1Ai
+∣An∣−
An∩i=1⋃n−1Ai
根据公式
(
A
∪
B
)
∩
C
=
(
A
∩
C
)
∪
(
B
∩
C
)
\begin{align} & (A \cup B) \cap C=(A \cap C) \cup (B \cap C) \end{align}
(A∪B)∩C=(A∩C)∪(B∩C)
将
(
3
)
(3)
(3)式种的第三项根据公式
(
4
)
(4)
(4)进行一次化简得到
A
n
∩
⋃
i
=
1
n
−
1
A
i
=
(
A
n
−
1
∪
⋃
i
=
1
n
−
2
A
i
)
∩
A
n
=
(
A
n
∩
⋃
i
=
1
n
−
2
A
i
)
∪
(
A
n
∩
A
n
−
1
)
\begin{align} A_n \cap \bigcup_{i=1}^{n-1}A_i &= (A_{n-1} \cup \bigcup_{i=1}^{n-2}A_i ) \cap A_n \nonumber \\&= (A_{n} \cap \bigcup_{i=1}^{n-2}A_i) \cup (A_n \cap A_{n-1}) \end{align}
An∩i=1⋃n−1Ai=(An−1∪i=1⋃n−2Ai)∩An=(An∩i=1⋃n−2Ai)∪(An∩An−1)
对
(
5
)
(5)
(5)式中的第一个括号中的项继续运用公式
(
4
)
(4)
(4),直到公式全部展开得到
A
n
∩
⋃
i
=
1
n
−
1
A
i
=
(
A
1
∩
A
n
)
∪
(
A
2
∩
A
n
)
.
.
.
∪
(
A
n
−
1
∩
A
n
)
=
⋃
i
=
1
n
−
1
(
A
i
∩
A
n
)
\begin{align} A_n \cap \bigcup_{i=1}^{n-1}A_i=&(A_1 \cap A_n)\cup(A_2 \cap A_n)...\cup(A_{n-1} \cap A_n)\nonumber\\ =& \bigcup_{i=1}^{n-1}(A_i \cap A_n) \nonumber \end{align}
An∩i=1⋃n−1Ai==(A1∩An)∪(A2∩An)...∪(An−1∩An)i=1⋃n−1(Ai∩An)
则
(
1
)
(1)
(1)式被化简为
∣
⋃
i
=
1
n
A
i
∣
=
∣
⋃
i
=
1
n
−
1
A
i
∣
+
∣
A
n
∣
−
∣
⋃
i
=
1
n
−
1
(
A
n
∩
A
i
)
∣
\begin{align} \left\vert \bigcup_{i=1}^{n}A_i\right\vert = \left\vert \bigcup_{i=1}^{n-1} A_i\right\vert + \left\vert A_n\right\vert- \left\vert \bigcup_{i=1}^{n-1}(A_n \cap A_i)\right\vert \end{align}
i=1⋃nAi
=
i=1⋃n−1Ai
+∣An∣−
i=1⋃n−1(An∩Ai)
令
B
i
=
A
n
∩
A
i
B_i=A_n \cap A_i
Bi=An∩Ai,由
(
6
)
(6)
(6)式得到
∣
⋃
i
=
1
n
A
i
∣
=
∣
⋃
i
=
1
n
−
1
A
i
∣
+
∣
A
n
∣
−
∣
⋃
i
=
1
n
−
1
B
i
∣
\begin{align} \left\vert \bigcup_{i=1}^{n}A_i\right\vert = \left\vert \bigcup_{i=1}^{n-1} A_i\right\vert + \left\vert A_n\right\vert- \left\vert \bigcup_{i=1}^{n-1}B_i\right\vert \end{align}
i=1⋃nAi
=
i=1⋃n−1Ai
+∣An∣−
i=1⋃n−1Bi
假设
n
−
1
n-1
n−1时,对
(
7
)
(7)
(7)式运用公式
(
1
)
(1)
(1)可化简为
∣
⋃
i
=
1
n
A
i
∣
=
∣
⋃
i
=
1
n
−
1
A
i
∣
+
∣
A
n
∣
−
∣
⋃
i
=
1
n
−
1
B
i
∣
=
∑
J
⊆
[
n
−
1
]
J
≠
∅
(
−
1
)
∣
J
∣
−
1
∣
⋂
i
∈
J
A
i
∣
+
∣
A
n
∣
−
∑
K
⊆
[
n
−
1
]
K
≠
∅
(
−
1
)
∣
K
∣
−
1
∣
⋂
i
∈
K
B
i
∣
\begin{align} \left\vert \bigcup_{i=1}^{n}A_i\right\vert &= \left\vert \bigcup_{i=1}^{n-1} A_i\right\vert + \left\vert A_n\right\vert- \left\vert \bigcup_{i=1}^{n-1}B_i\right\vert \nonumber\\ &=\sum_{\substack{J \subseteq [n-1]\\J \ne \empty}}(-1)^{\substack{|J|-1}} \left\vert \bigcap_{\substack{i \in J}}A_i\right\vert+ \left\vert A_n\right\vert - \sum_{\substack{K \subseteq [n-1]\\K \ne \empty}}(-1)^{\substack{|K|-1}} \left\vert \bigcap_{\substack{i \in K}}B_i\right\vert \end{align}
i=1⋃nAi
=
i=1⋃n−1Ai
+∣An∣−
i=1⋃n−1Bi
=J⊆[n−1]J=∅∑(−1)∣J∣−1
i∈J⋂Ai
+∣An∣−K⊆[n−1]K=∅∑(−1)∣K∣−1
i∈K⋂Bi
将
(
8
)
(8)
(8)式中的符号放进幂次中
∣
⋃
i
=
1
n
A
i
∣
=
∑
J
⊆
[
n
−
1
]
J
≠
∅
(
−
1
)
∣
J
∣
−
1
∣
⋂
i
∈
J
A
i
∣
+
∣
A
n
∣
+
∑
K
⊆
[
n
−
1
]
K
≠
∅
(
−
1
)
∣
K
∣
∣
⋂
i
∈
K
B
i
∣
\begin{align} \left\vert \bigcup_{i=1}^{n}A_i\right\vert &=\sum_{\substack{J \subseteq [n-1]\\J \ne \empty}}(-1)^{\substack{|J|-1}} \left\vert \bigcap_{\substack{i \in J}}A_i\right\vert+ \left\vert A_n\right\vert + \sum_{\substack{K \subseteq [n-1]\\K \ne \empty}}(-1)^{\substack{|K|}} \left\vert \bigcap_{\substack{i \in K}}B_i\right\vert \nonumber \end{align}
i=1⋃nAi
=J⊆[n−1]J=∅∑(−1)∣J∣−1
i∈J⋂Ai
+∣An∣+K⊆[n−1]K=∅∑(−1)∣K∣
i∈K⋂Bi
再将
B
i
B_i
Bi展开合并
K
∈
[
n
−
1
]
⋂
i
∈
K
B
i
=
⋂
i
∈
K
(
A
i
∩
A
n
)
=
(
A
1
∩
A
n
)
∩
(
A
2
∩
A
n
)
∩
.
.
.
∩
(
A
n
−
1
∩
A
n
)
=
⋂
i
∈
K
∪
{
n
}
A
i
,
\begin{align} &K \in [n-1]\nonumber\\ \bigcap_{i \in K}B_i&=\bigcap_{i \in K}(A_i \cap A_n)=(A_1 \cap A_n) \cap (A_2 \cap A_n) \cap ...\cap(A_{n-1} \cap A_n)\\ &=\bigcap_{i \in K \cup \{n\}}A_i , \end{align}
i∈K⋂BiK∈[n−1]=i∈K⋂(Ai∩An)=(A1∩An)∩(A2∩An)∩...∩(An−1∩An)=i∈K∪{n}⋂Ai,
原式变为
∣
⋃
i
=
1
n
A
i
∣
=
∑
J
⊆
[
n
−
1
]
J
≠
∅
(
−
1
)
∣
J
∣
−
1
∣
⋂
i
∈
J
A
i
∣
+
∣
A
n
∣
+
∑
K
⊆
[
n
−
1
]
K
≠
∅
(
−
1
)
∣
K
∣
∣
⋂
i
∈
K
∪
{
n
}
A
i
∣
\begin{align} \left\vert \bigcup_{i=1}^{n}A_i\right\vert &=\sum_{\substack{J \subseteq [n-1]\\J \ne \empty}}(-1)^{\substack{|J|-1}} \left\vert \bigcap_{\substack{i \in J}}A_i\right\vert+ \left\vert A_n\right\vert + \sum_{\substack{K \subseteq [n-1] \\K \ne \empty}}(-1)^{\substack{|K|}} \left\vert \bigcap_{\substack{i \in K \cup \{n\}}}A_i\right\vert \nonumber \end{align}
i=1⋃nAi
=J⊆[n−1]J=∅∑(−1)∣J∣−1
i∈J⋂Ai
+∣An∣+K⊆[n−1]K=∅∑(−1)∣K∣
i∈K∪{n}⋂Ai
将
K
K
K用
J
J
J替换掉。
为了使第三项中的 K K K被替换, J J J需要满足
- J ≠ ∅ J \ne \empty J=∅
- J ⊆ [ n ] ∧ n ∈ J ( n 在每个 J 中都要包含 ) J \subseteq [n] \wedge n \in J(n在每个J中都要包含) J⊆[n]∧n∈J(n在每个J中都要包含)
- J ≠ { n } ( K ∪ { n } ≠ { n } , K ≠ ∅ ) J \ne \{n\}(K \cup \{n\} \ne \{n\},K \ne \empty) J={n}(K∪{n}={n},K=∅)
对于这一项的 J = K ∪ { n } , ∣ J ∣ − 1 = ∣ K ∣ J=K \cup \{n\},|J|-1=|K| J=K∪{n},∣J∣−1=∣K∣
替换后
∣
⋃
i
=
1
n
A
i
∣
=
∑
J
⊆
[
n
−
1
]
J
≠
∅
(
−
1
)
∣
J
∣
−
1
∣
⋂
i
∈
J
A
i
∣
+
∣
A
n
∣
+
∑
J
⊆
[
n
]
J
≠
∅
J
≠
{
n
}
(
−
1
)
∣
J
∣
−
1
∣
⋂
i
∈
J
A
i
∣
\begin{align} \left\vert \bigcup_{i=1}^{n}A_i\right\vert &=\sum_{\substack{J \subseteq [n-1]\\J \ne \empty}}(-1)^{\substack{|J|-1}} \left\vert \bigcap_{\substack{i \in J}}A_i\right\vert+ \left\vert A_n\right\vert + \sum_{\substack{J \subseteq [n] \\J \ne \empty\\J \ne \{n\}}}(-1)^{\substack{|J|}-1} \left\vert \bigcap_{\substack{i \in J}}A_i\right\vert \nonumber \end{align}
i=1⋃nAi
=J⊆[n−1]J=∅∑(−1)∣J∣−1
i∈J⋂Ai
+∣An∣+J⊆[n]J=∅J={n}∑(−1)∣J∣−1
i∈J⋂Ai
而
∣
A
n
∣
=
(
−
1
)
∣
{
n
}
∣
−
1
∣
A
n
∣
=
∑
J
∈
{
n
}
(
−
1
)
∣
J
∣
−
1
∣
⋂
i
∈
J
A
i
∣
\left\vert A_n\right\vert=(-1)^{|\{n\}|-1}\left\vert A_n\right\vert= \sum_{J \in \{n\}}(-1)^{|J|-1}\left\vert \bigcap_{i \in J}A_i\right\vert
∣An∣=(−1)∣{n}∣−1∣An∣=J∈{n}∑(−1)∣J∣−1
i∈J⋂Ai
得到
∣
⋃
i
=
1
n
A
i
∣
=
∑
J
⊆
[
n
−
1
]
J
≠
∅
(
−
1
)
∣
J
∣
−
1
∣
⋂
i
∈
J
A
i
∣
+
∑
J
∈
{
n
}
(
−
1
)
∣
J
∣
−
1
∣
⋂
i
∈
J
A
i
∣
+
∑
J
⊆
[
n
]
J
≠
∅
J
≠
{
n
}
(
−
1
)
∣
J
∣
−
1
∣
⋂
i
∈
J
A
i
∣
\begin{align} \left\vert \bigcup_{i=1}^{n}A_i\right\vert &=\sum_{\substack{J \subseteq [n-1]\\J \ne \empty}}(-1)^{\substack{|J|-1}} \left\vert \bigcap_{\substack{i \in J}}A_i\right\vert+ \sum_{J \in \{n\}}(-1)^{|J|-1}\left\vert \bigcap_{i \in J}A_i\right\vert + \sum_{\substack{J \subseteq [n] \\J \ne \empty\\J \ne \{n\}}}(-1)^{\substack{|J|}-1} \left\vert \bigcap_{\substack{i \in J}}A_i\right\vert \end{align}
i=1⋃nAi
=J⊆[n−1]J=∅∑(−1)∣J∣−1
i∈J⋂Ai
+J∈{n}∑(−1)∣J∣−1
i∈J⋂Ai
+J⊆[n]J=∅J={n}∑(−1)∣J∣−1
i∈J⋂Ai
将
(
11
)
(11)
(11)式中的三项进行合并
- Q 1 = [ n − 1 ] 的所有非空子集 Q1=[n-1]的所有非空子集 Q1=[n−1]的所有非空子集
- Q 2 = { n } Q2=\{n\} Q2={n}
- Q 3 = [ n ] 的所有包含 n 的集合且不为 Q 2 Q3=[n]的所有包含n的集合且不为Q2 Q3=[n]的所有包含n的集合且不为Q2
Q
1
∪
Q
2
∪
Q
3
=
[
n
]
Q1 \cup Q2 \cup Q3=[n]
Q1∪Q2∪Q3=[n]
所以原式子为
∑
J
⊆
[
n
−
1
]
J
≠
∅
(
−
1
)
∣
J
∣
−
1
∣
⋂
i
∈
J
A
i
∣
+
∑
J
∈
{
n
}
(
−
1
)
∣
J
∣
−
1
∣
⋂
i
∈
J
A
i
∣
+
∑
J
⊆
[
n
]
J
≠
∅
J
≠
{
n
}
(
−
1
)
∣
J
∣
−
1
∣
⋂
i
∈
J
A
i
∣
=
∑
J
⊆
[
n
]
J
≠
∅
(
−
1
)
∣
J
∣
−
1
∣
⋂
i
∈
J
A
i
∣
\begin{align} \sum_{\substack{J \subseteq [n-1]\\J \ne \empty}}(-1)^{\substack{|J|-1}} \left\vert \bigcap_{\substack{i \in J}}A_i\right\vert+ \sum_{J \in \{n\}}(-1)^{|J|-1}\left\vert \bigcap_{i \in J}A_i\right\vert + \sum_{\substack{J \subseteq [n] \\J \ne \empty\\J \ne \{n\}}}(-1)^{\substack{|J|}-1} \left\vert \bigcap_{\substack{i \in J}}A_i\right\vert=\\ \sum_{\substack{J \subseteq [n]\\J \ne \empty}}(-1)^{\substack{|J|-1}} \left\vert \bigcap_{\substack{i \in J}}A_i\right\vert \nonumber \end{align}
J⊆[n−1]J=∅∑(−1)∣J∣−1
i∈J⋂Ai
+J∈{n}∑(−1)∣J∣−1
i∈J⋂Ai
+J⊆[n]J=∅J={n}∑(−1)∣J∣−1
i∈J⋂Ai
=J⊆[n]J=∅∑(−1)∣J∣−1
i∈J⋂Ai
原式得证。
4. 证明二:元素法
考虑一个元素 x 0 x_0 x0在集合中出现的次数;
- x 0 x_0 x0没有在所有集合中出现
显然容斥公式左边,在所有集合并集中出现的次数为0,且等于容斥公式右边。
∣
⋃
i
=
1
n
A
i
∣
=
0
\left\vert \bigcup_{i=1}^{n}A_i\right\vert=0
i=1⋃nAi
=0
- x 0 x_0 x0只出现在了一个集合 A m A_m Am中
对于容斥公式左边
∣
⋃
i
=
1
n
A
i
∣
=
∣
A
m
∣
=
1
\left\vert \bigcup_{i=1}^{n}A_i\right\vert=\left\vert A_m\right\vert=1
i=1⋃nAi
=∣Am∣=1
而对于等式右边由于元素只出现在了集合
A
m
A_m
Am中,所以与其他集合交集中不可能出现元素
A
m
A_m
Am
等式右边为
∣
A
m
∣
=
1
|A_m|=1
∣Am∣=1
- x 0 x_0 x0出现在了两个集合中 A m A n A_m\ A_n Am An中
只要元素出现在任意一个集合中,容斥公式左边的计数都为
1
1
1
则容斥原理公式右边为
∣
A
m
∣
+
∣
A
n
∣
−
∣
A
m
∩
A
n
∣
=
1
+
1
−
1
=
1
|A_m|+|A_n|-|A_m \cap A_n|=1 + 1 -1=1
∣Am∣+∣An∣−∣Am∩An∣=1+1−1=1
- x 0 x_0 x0出现在了 k k k个集合中
公式右边为
C n t = ( k 1 ) + ( − 1 ) 2 − 1 ( k 2 ) + . . . + ( − 1 ) k − 1 ( k k ) = ∑ j = 1 k ( − 1 ) j − 1 ( k j ) = − ∑ j = 1 k ( − 1 ) j ( k j ) \begin{align} Cnt &={k \choose 1}+(-1)^{2-1}{k \choose 2} +...+(-1)^{k-1}{k \choose k} \nonumber \\&=\sum_{j=1}^{k}(-1)^{j-1}{k \choose j} \nonumber \\&=-\sum_{j=1}^{k}(-1)^{j}{k \choose j} \nonumber \end{align} Cnt=(1k)+(−1)2−1(2k)+...+(−1)k−1(kk)=j=1∑k(−1)j−1(jk)=−j=1∑k(−1)j(jk)
二项式系数
(
a
+
b
)
k
=
∑
0
≤
u
≤
k
C
k
u
a
u
b
k
−
u
(a+b)^{k}=\sum_{\substack{0 \le u \le k}}C_{k}^{u}a^{u}b^{k-u}
(a+b)k=0≤u≤k∑Ckuaubk−u
当
a
=
−
1
,
b
=
1
a=-1,b=1
a=−1,b=1时
(
−
1
+
1
)
k
=
∑
j
=
0
k
(
−
1
)
j
(
k
j
)
=
(
−
1
)
0
(
k
0
)
+
∑
j
=
1
k
(
−
1
)
j
(
k
j
)
=
0
∑
j
=
1
k
(
−
1
)
j
(
k
j
)
=
−
1
(-1+1)^{k}=\sum_{j=0}^{k}(-1)^{j}{k \choose j}=(-1)^0{k \choose0}+\sum_{j=1}^{k}(-1)^{j}{k \choose j}=0\\ \sum_{j=1}^{k}(-1)^{j}{k \choose j}=-1
(−1+1)k=j=0∑k(−1)j(jk)=(−1)0(0k)+j=1∑k(−1)j(jk)=0j=1∑k(−1)j(jk)=−1
所以
C
n
t
=
1
Cnt=1
Cnt=1,每个元素出现了一次,证明完成。