算法中的容斥原理

对容斥原理的描述

容斥原理是一种重要的组合数学方法,可以让你求解任意大小的集合,或者计算复合事件的概率。

描述

容斥原理可以描述如下:

要计算几个集合并集的大小,我们要先将所有单个集合的大小计算出来,然后减去所有两个集合相交的部分,再加回所有三个集合相交的部分,再减去所有四个集合相交的部分,依此类推,一直计算到所有集合相交的部分。

关于集合的原理公式

它可以写得更简洁一些,我们将B作为所有Ai的集合,那么容斥原理就变成了:

这个公式是由 De Moivre (Abraham de Moivre)提出的。

关于维恩图的原理

用维恩图来表示集合A、B和C: