容斥原理是一种重要的组合数学方法,可以让你求解任意大小的集合,或者计算复合事件的概率。 描述 容斥原理可以描述如下: 要计算几个集合并集的大小,我们要先将所有单个集合的大小计算出来,然后减去所有两个集合相交的部分,再加回所有三个集合相交的部分,再减去所有四个集合相交的部分,依此类推,一直计算到所有集合相交的部分。 关于集合的原理公式 上述描述的公式形式可以表示如下:
它可以写得更简洁一些,我们将B作为所有Ai的集合,那么容斥原理就变成了: 这个公式是由 De Moivre (Abraham de Moivre)提出的。 关于维恩图的原理 用维恩图来表示集合A、B和C: 那么的面积就是集合A、B、C各自面积之和减去 , , 的面积,再加上的面积。 由此,我们也可以解决n个集合求并的问题。 关于概率论的原理 设事件, 代表发生某些事件的概率(即发生其中至少一个事件的概率),则: 这个公式也可以用B代表Ai的集合: 容斥原理的证明 我们要证明下面的等式: 其中B代表全部Ai的集合 我们需要证明在Ai集合中的任意元素,都由右边的算式被正好加上了一次(注意如果是不在Ai集合中的元素,是不会出现在右边的算式中的)。 假设有一任意元素在k个Ai集合中(k>=1),我们来验证这个元素正好被加了一次: 当size(C)=1时,元素x被加了k次。 当size(C)=2时,元素x被减了C(2,k)次,因为在k个集合中选择2个,其中都包含x。 当size(C)=3时,元素x被加了C(3,k)次。 …… 当size(C)=k时,元素x被加/减了C(k,k)次,符号由sign(-1)^(k-1)决定。 当size(C)>k时,元素x不被考虑。 然后我们来计算所有组合数的和。 由二项式定理,我们可以将它变成:
我们把x取为1,这时表示1-T(其中T为x被加的总次数),所以,证明完毕。
|