计数最基础的东西。
首先我们要知道什么是计数。
集合 A 的计数用 ∣A∣ 表示,计数的严格表示就是:
∣A∣=a∈A∑1
其实就是集合 A 中的元素个数。
容斥原理就是它的字面意思,容表示加,斥表示减,所以容斥原理就是加加减减。我们都学过,如果两个没有交集的集合 A 和 B 取并集的计数就是直接讲两个集合的计数相加,也就是 ∣A∪B∣=∣A∣+∣B∣,A∩B=∅,这个称为加法原理。同样的 ∣A×B∣=∣A∣×∣B∣,这个被称为乘法原理。
我们可以注意到,在刚刚的加法原理中,有一个条件是 A∩B=∅,当时如果 A∩B=∅ 呢?这个时候就要用容斥原理了。
一般来说,求集合的交集比就集合的并集简单,所以容斥原理就是把并集转为交集。
最经典的就是有两个圆,他们有重叠部分,知道两个圆的面积和重叠面积,求总面积。这个问题的答案显然是把连个面积加起来,再把重叠面积相减。用集合来表示的话,就是
∣A∪B∣=∣A∣+∣B∣−∣A∩B∣
同样也通用于刚刚的加法原理。
类似的,三个集合的并集就是把每个面积加起来,再把每两个集的交集减去,这是发现中间的三个集合的交集减多了,所以要加回去。表示为:
∣A∪B∪C∣=∣A∣+∣B∣+∣C∣−∣A∩B∣−∣B∩C∣−∣A∩C∣+∣A∩B∩C∣
容斥原理其实就是把这个式子推广到一般情况。
设有 n 个集合,第 i 个集合叫做 Ai,则:
i=1⋃nAi=∅=I⊆{1,2,⋅⋅⋅,n}∑(−1)∣I∣+1i∈I⋂Ai
其中容和斥的部分分别是:
容:(−1)∣I∣+1=1→∣I∣∈{1,3,5,7,⋅⋅⋅}
斥:(−1)∣I∣+1=−1→∣I∣∈{2,4,6,8,⋅⋅⋅}
但是偶尔会出现求并集比求交集难容易的情况。
这是就要用到容斥原理的交集转并集。
设有 n 个集合,第 i 个集合叫做 Ai,U 表示总集,则:
i=1⋂nAi=i=1⋃nAi→i=1⋂nAi=∣U∣−i=1⋃nAii=1⋃nAi=∅=I⊆{1,2,⋅⋅⋅,n}∑(−1)∣I∣+1i∈I⋂Ai→i=1⋂nAi=∣U∣−∅=I⊆{1,2,⋅⋅⋅,n}∑(−1)∣I∣+1i∈I⋂Ai