容斥原理

Posted luckyblock

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了容斥原理相关的知识,希望对你有一定的参考价值。

容斥原理

用于计算多个集合并集的大小。

技术图片

[small ext{一张用烂的图} ]

[small ext{from Wikipedia} ]

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

写成数学公式形式:

[{displaystyle {egin{aligned}left|igcup _{i=1}^{n}A_{i} ight|={}&sum _{i=1}^{n}|A_{i}|-sum _{1leq i<jleq n}|A_{i}cap A_{j}|+sum _{1leq i<j<kleq n}|A_{i}cap A_{j}cap A_{k}|-cdots +(-1)^{n-1}left|A_{1}cap cdots cap A_{n} ight|.end{aligned}}} ]

即为:

[{displaystyle left|igcup _{i=1}^{n}A_{i} ight|=sum _{k=1}^{n}(-1)^{k+1}left(sum _{1leq i_{1}<cdots <i_{k}le n}|A_{i_{1}}cap cdots cap A_{i_{k}}| ight)} ]

证明

需证明通过上述方法计算,每个元素仅被覆盖了一次。
考虑一个出现在 (m) 个集合中的元素 (x)

按照上述方法:

  1. 选取一个集合时,显然 (x) 在其中出现次数为 ({mchoose 1})
  2. 选取两个集合时,两集合贡献为其并集的大小。
    (x) 在两集合中均出现时 才有贡献。
    出现次数为 满足条件的方案数,即 (-{mchoose 2})
  3. 选取三个集合时,分析过程同上,出现次数为 ({mchoose 3})
  4. 以此类推,选取集合数 (>m) 时,(x) 不会在并集中出现,失去贡献。

,则 (x) 的出现次数为:

[egin{aligned} Cnt =& {mchoose 1} - {mchoose 2} +... + (-1)^m{mchoose m} =& sum_{i=1}^{m}(-1)^{i-1}{mchoose i} end{aligned}]

发现这玩意挺优美,考虑二项式定理:

[egin{aligned} Cnt =& sum_{i=1}^{m}(-1)^{i-1}{mchoose i} = & -sum_{i=1}^{m}(-1)^{i}{mchoose i} = &{mchoose 0} -{mchoose 0} -sum_{i=1}^{m}(-1)^{i}{mchoose i} = &{mchoose 0} -sum_{i=0}^{m}{mchoose i}(-1)^{i} = &1-(-1+1)^m = &1 end{aligned}]

得证。

交集

用全集减去 补集的并集 求得,即 补集的并集 的补集

[igcap _{{i=1}}^{n}A_{i} = |U|-left|igcup_{i=1}^noverline{A_i} ight| = overline {igcup _{{i=1}}^{n}overline {A}_{i}} ]

正确性显然,略证:
(overline{A_i}) 为除 (A_i) 外的元素。
(overline{A_i} cup overline{A_j}) 为除 (A_icap A_j) 外的元素。
(left|igcuplimits_{i=1}^noverline{A_i} ight|) 则为除 (igcaplimits_{{i=1}}^{n}A_{i}) 外的元素。
其补集即为交集。


写在最后

水炊老师太神了吧 /fad
单马尾文文好可爱(









以上是关于容斥原理的主要内容,如果未能解决你的问题,请参考以下文章

容斥原理

容斥原理

「总结」容斥原理

容斥原理

容斥原理--题

容斥原理学习笔记