容斥原理
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)。
按照上述方法:
- 选取一个集合时,显然 (x) 在其中出现次数为 ({mchoose 1})。
- 选取两个集合时,两集合贡献为其并集的大小。
则 (x) 在两集合中均出现时 才有贡献。
出现次数为 满足条件的方案数,即 (-{mchoose 2})。 - 选取三个集合时,分析过程同上,出现次数为 ({mchoose 3})。
- 以此类推,选取集合数 (>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
单马尾文文好可爱(
以上是关于容斥原理的主要内容,如果未能解决你的问题,请参考以下文章