容斥定理的非数学归纳证明
容斥定理
参考 集合符
∣ ⋃ i = 1 n A i ∣ = ∑ i = 1 n ( − 1 ) i − 1 A [ i ] \left|\bigcup_{i=1}^{n} A_{i}\right|=\sum_{i=1}^{n}(-1)^{i-1} A_{[i]}
i=1⋃nAi
=i=1∑n(−1)i−1A[i]
∣ ⋃ i = 1 n A i ∣ = ∑ i = 1 n ( − 1 ) i − 1 ∑ 1 ≤ k 1 < ⋯ < k i ≤ n ∣ A k 1 ∩ ⋯ ∩ A k i ∣ \left| \bigcup_{i=1}^n A_i \right| = \sum_{i=1}^{n} (-1)^{i-1} \sum_{1 \le k_1 < \dots < k_i \le n} |A_{k_1} \cap \dots \cap A_{k_i}|
i=1⋃nAi
=i=1∑n(−1)i−11≤k1<⋯<ki≤n∑∣Ak1∩⋯∩Aki∣
这里证法应该是最简单、最直接的证法,而数学归纳法的缺点是必须先猜出答案。

约定
A [ i ] A_{[i]} A[i] 与 A ( i ) A_{(i)} A(i) 表示集合或者对应的基数,具体由上下文决定。
集簇
- 约定1: A = { A 1 , A 2 , … , A n } A = \{ A_{1}, A_{2}, \dots, A_{n} \} A={A1,A2,…,An}
- 约定2: A [ i ] : = A_{[i]} := A[i]:= A 中所有 i i i 个元素交的模的和,或 A 中所有 i i i 个元素的交簇。
- 约定3: A ( i ) : = A_{(i)} := A(i):= A 中所有仅有 i i i 个元素交的模的和,或 A 中仅有 i i i 个元素的交, A ( i ) A_{(i)} A(i)的元素称作i重元
- 约定4: Ω = ⋃ i = 1 n A i = ⋃ i = 1 n A ( i ) Ω= \bigcup_{i=1}^{n} A_{i} = \bigcup_{i=1}^{n} A_{(i)} Ω=⋃i=1nAi=⋃i=1nA(i) 是样本空间
其中 A ( 1 ) A_{(1)} A(1)… A ( n ) A_{(n)} A(n)是 Ω Ω Ω 的一个划分,若 i ≠j 则 A ( i ) A_{(i)} A(i) 和 A ( j ) A_{(j)} A(j)无交集。 - 约定5: t A ( k ) tA_{(k)} tA(k) 指 A ( k ) A_{(k)} A(k) 中的元素算了 t t t 次( t ≥ 0 t \geq 0 t≥0)。
计数
A [ i ] A_{[i]} A[i] 与 A ( i ) A_{(i)} A(i)的含义根据上下文理解
A [ i ] A_{[i]} A[i] :至少 i i i 个集合相交的总和,存在重复计数
A ( i ) A_{(i)} A(i) :恰好 i i i 个集合相交的总和,无重复、无重叠
A [ i ] A_{[i]} A[i]:从 n n n 个集合中任意选 i i i 个求交集,再将所有交集大小相加一个属于 s s s 个集合的元素( s ≥ i s \ge i s≥i)会被计算 C s i \mathrm{C}_s^i Csi 次
包含恰好 i , i + 1 , … , n i,i+1,\dots,n i,i+1,…,n 个集合相交的所有元素
A ( i ) A_{(i)} A(i)只属于恰好 i i i 个集合的元素总数
元素不重复、不遗漏,两两之间无交集
所有 A ( i ) A_{(i)} A(i) 构成样本空间的一个划分
T1
A [ k ] A_{[k]} A[k] 对 A ( s ) A_{(s)} A(s) 中的元素算了 C s k C_{s}^{k} Csk 次( s ≥ k s \geq k s≥k)。
P1:
x ∈ A ( s ) x \in A_{(s)} x∈A(s),则 x x x 被确定的 s s s 个集合包含。
从这 s s s 个集合挑出 k k k 个集合对应到 A [ k ] A_{[k]} A[k] 上,每一种挑法 x x x 都被算 1 次。
例如:
- A [ 5 ] A_{[5]} A[5] 对 A ( 3 ) A_{(3)} A(3) 算了 0 次。
- 因为 A [ 5 ] A_{[5]} A[5] 中的元素至少是 5 个集合交出来的(也可能是大于5个集合交出的)
- 而 A ( 3 ) A_{(3)} A(3) 中的元素是 3 个集合交出来的。
- 所以 x ∈ A ( 3 ) ⇒ x ∉ A [ 5 ] x \in A_{(3)} \Rightarrow x \notin A_{[5]} x∈A(3)⇒x∈/A[5]。
A [ i ] A_{[i]} A[i] 与 A ( i ) A_{(i)} A(i) 的关系
为简化表达, 下面的 A [ i ] A_{[i]} A[i] 与 A ( i ) A_{(i)} A(i) 都表示基数
- A [ 1 ] : C 1 1 A ( 1 ) + C 2 1 A ( 2 ) + … + C n 1 A ( n ) A_{[1]} : \quad C_{1}^{1} A_{(1)} \;+\; C_{2}^{1} A_{(2)} \;+\; \dots \;+\; C_{n}^{1} A_{(n)} A[1]:C11A(1)+C21A(2)+…+Cn1A(n)
- A [ 2 ] : 0 A ( 1 ) + C 2 2 A ( 2 ) + … + C n 2 A ( n ) A_{[2]} : \quad 0A_{(1)} \;+\; C_{2}^{2} A_{(2)} \;+\; \dots \;+\; C_{n}^{2} A_{(n)} A[2]:0A(1)+C22A(2)+…+Cn2A(n)
- … \dots …
- A [ n ] : 0 A ( 1 ) + 0 A ( 2 ) + … + C n n A ( n ) A_{[n]} : \quad 0A_{(1)} \;+\; 0A_{(2)} \;+\; \dots \;+\; C_{n}^{n} A_{(n)} A[n]:0A(1)+0A(2)+…+CnnA(n)
取第 1 行 - 第 2 行 + 第 3 行 - … 第 n 行,即得到:
A ( 1 ) + A ( 2 ) + … A ( n ) A_{(1)} + A_{(2)} + \dots A_{(n)} A(1)+A(2)+…A(n)
这正是总的样本空间的元素个数
解释
这里 A [ i ] A_{[i]} A[i] 与 A ( i ) A_{(i)} A(i) 表示对应集合的基数, 即 用集合指代集合的基数
上面用到了恒等式
∑ i = 1 n ( − 1 ) i − 1 C n i = 1 \sum_{i=1}^{n} (-1)^{i-1} C_{n}^{i} = 1 i=1∑n(−1)i−1Cni=1
故
∣ ⋃ i = 1 n A i ∣ = A ( 1 ) + A ( 2 ) + ⋯ + A ( n ) = A [ 1 ] − A [ 2 ] + A [ 3 ] − … A [ n ] \left|\bigcup_{i=1}^{n} A_{i}\right| = A_{(1)} + A_{(2)} + \dots + A_{(n)} = A_{[1]} - A_{[2]} + A_{[3]} - \dots A_{[n]}
i=1⋃nAi
=A(1)+A(2)+⋯+A(n)=A[1]−A[2]+A[3]−…A[n]
即
∣ ⋃ i = 1 n A i ∣ = ∑ i = 1 n ( − 1 ) i − 1 A [ i ] \left|\bigcup_{i=1}^{n} A_{i}\right|=\sum_{i=1}^{n}(-1)^{i-1} A_{[i]}
i=1⋃nAi
=i=1∑n(−1)i−1A[i]
容斥定理例题
∣ A ∪ B ∣ = ∣ A ∣ + ∣ B ∣ − ∣ A ∩ B ∣ |A \cup B| = |A| + |B| - |A \cap B| ∣A∪B∣=∣A∣+∣B∣−∣A∩B∣
某班级有学生50人,其中喜欢数学的有30人,喜欢语文的有28人,两门都不喜欢的有5人。
请问:两门学科都喜欢的学生有多少人?
- 样本空间 ∣ Ω ∣ = 50 |\Omega |= 50 ∣Ω∣=50(班级总人数)
- 喜欢数学 |A|=30 :
- 喜欢语文 |B|=28
- 都不喜欢: ∣ Ω ∣ − ∣ A ∪ B ∣ |\Omega |- |A \cup B| ∣Ω∣−∣A∪B∣=5
带入容斥定理得 ∣ A ∩ B ∣ = 30 + 28 − 45 = 13 |A \cap B|=30+28-45 = 13 ∣A∩B∣=30+28−45=13 人
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)