容斥原理(基本形式及其证明)

我们上高中的时候,都学过一种容斥原理吧,表示为以下形式:

\[|A\cup B|=|A|+|B|-|A\cap B| \]

A表示事件A发生的概率或者方案数,B同理

其实这个叫做单步容斥,因为这个仅仅有一次加减,

而在信息学领域,多见的是多步容斥,就是有很多次加加减减,形式如下

\[\left|\bigcup\limits_{i=1}^{n}S_i\right|=\sum\limits_{C\subseteq M}^{n}(-1)^{|C|-1}\left|\bigcap\limits_{T\subseteq C}T\right| \]

这里S表示一个集合或者一个元素,M表示S的集合也就是集合的集合

C枚举的就是集合M中的所有大小为一个定值的集合,T是C中的每一个元素

左侧就是所有S的并集,也就是所有S中包含的元素总和

右侧的就表示C的每一个元素的交集,加多了的减去,减多了再加上

展开之后就是:

\[|A_1\cup A_2\cup...\cup A_n|=\sum\limits_{1\le i\le n}|A_i|-\sum\limits_{1\le i<j\le n}|A_i\cap A_j|+...+(-1)^{n-1}\times |A_1\cap A_2\cap ...\cap A_n| \]

这个其实可以用二项式定理证明的,

设一个元素在m个集合中出现过,那么就有:

\[\sum\limits_{i=1}^m(-1)^{i-1}{m\choose i}=-\sum\limits_{i=1}^m(-1)^i{m\choose i}=1-\sum\limits_{i=0}^m(-1)^i{m\choose i}=1-(1-1)^m=1 \]

这个二项式定理的应用,直接展开一下就好了,挺好推的

其实还有广义容斥原理,那个含义极其广泛

可以说,所有的反演都是广义容斥原理的一个特殊情况。。。。

上一篇:ssh链接过多问题分析及复盘


下一篇:HDU6960. Necklace of Beads题解