今年省赛被这个题坑了。。。才发现竟然不知道这个重要的知识。

在计数时,必须注意没有重复,没有遗漏。为了使重叠部分不被重复计算,人们研究出一种新的计数方法,这种方法的基本思想是:先不考虑重叠的情况,把包含于某内容中的所有对象的数目先计算出来,然后再把计数时重复计算的数目排斥出去,使得计算的结果既无遗漏又无重复,这种计数的方法称为容斥原理。 ——百度百科

对于两个集合,该定理为:A∪B=A+B-A∩B
对于三个集合,该定理为:A∪B∪C=A+B+C-A∩B-A∩C-B∩C+A∩B∩C

于是对于n个集合:
设S为有限集,,则

注意那里的(-1)^k-1,当其为-1时含义是减去重复计数的部分 。

详细推理如下:(以三个集合为例)
1、 等式右边改造 = {[(A+B - A∩B)+C - B∩C] - C∩A }+ A∩B∩C
2、维恩图分块标记如下图图:1245构成A,2356构成B,4567构成C
3、等式右边()里指的是下图的1+2+3+4+5+6六部分:
那么A∪B∪C还缺部分7。
4、等式右边[]号里+C(4+5+6+7)后,相当于A∪B∪C多加了4+5+6三部分,
减去B∩C(即5+6两部分)后,还多加了部分4。
5、等式右边{}里减去C∩A (即4+5两部分)后,A∪B∪C又多减了部分5,
则加上A∩B∩C(即5)刚好是A∪B∪C。