容斥原理的两种证明

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=1nAi =1imAi1i<jmAiAj+1i<j<kmAiAjAk...+(1)m1A1A2A3...Am

3. 证明一:数学归纳法

简记 1 − n 1-n 1n的集合为
[ n ] : = { 1 , 2 , 3... , n } [n] :=\{ 1,2,3...,n\} [n]:={1,2,3...,n}
表示 1 − n 1-n 1n的整数形成的所有可能的集合。

原公式化简为
∣ ⋃ 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=1nAi =J[n]J=(1)J1 iJAi
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)11 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=1nAi = Ani=1n1Ai
根据公式
∣ 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 AB=A+BAB
可化简为
∣ 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} Ani=1nAi = (i=1n1Ai) = i=1n1Ai +An Ani=1n1Ai
根据公式
( A ∪ B ) ∩ C = ( A ∩ C ) ∪ ( B ∩ C ) \begin{align} & (A \cup B) \cap C=(A \cap C) \cup (B \cap C) \end{align} (AB)C=(AC)(BC)
( 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} Ani=1n1Ai=(An1i=1n2Ai)An=(Ani=1n2Ai)(AnAn1)
( 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} Ani=1n1Ai==(A1An)(A2An)...(An1An)i=1n1(AiAn)
( 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=1nAi = i=1n1Ai +An i=1n1(AnAi)
B i = A n ∩ A i B_i=A_n \cap A_i Bi=AnAi,由 ( 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=1nAi = i=1n1Ai +An i=1n1Bi
假设 n − 1 n-1 n1时,对 ( 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=1nAi = i=1n1Ai +An i=1n1Bi =J[n1]J=(1)J1 iJAi +AnK[n1]K=(1)K1 iKBi
( 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=1nAi =J[n1]J=(1)J1 iJAi +An+K[n1]K=(1)K iKBi
再将 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} iKBiK[n1]=iK(AiAn)=(A1An)(A2An)...(An1An)=iK{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=1nAi =J[n1]J=(1)J1 iJAi +An+K[n1]K=(1)K iK{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]nJ(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},J1=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=1nAi =J[n1]J=(1)J1 iJAi +An+J[n]J=J={n}(1)J1 iJAi

∣ 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}1An=J{n}(1)J1 iJAi
得到
∣ ⋃ 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=1nAi =J[n1]J=(1)J1 iJAi +J{n}(1)J1 iJAi +J[n]J=J={n}(1)J1 iJAi
( 11 ) (11) (11)式中的三项进行合并

  • Q 1 = [ n − 1 ] 的所有非空子集 Q1=[n-1]的所有非空子集 Q1=[n1]的所有非空子集
  • 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] Q1Q2Q3=[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[n1]J=(1)J1 iJAi +J{n}(1)J1 iJAi +J[n]J=J={n}(1)J1 iJAi =J[n]J=(1)J1 iJAi
原式得证。

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=1nAi =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=1nAi =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+AnAmAn=1+11=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)21(2k)+...+(1)k1(kk)=j=1k(1)j1(jk)=j=1k(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=0ukCkuaubku
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=0k(1)j(jk)=(1)0(0k)+j=1k(1)j(jk)=0j=1k(1)j(jk)=1
所以 C n t = 1 Cnt=1 Cnt=1,每个元素出现了一次,证明完成。

原文链接

OI_WIKI
lep_for_dummies
hanspub
普林斯顿概率论读本

  • 19
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值