码迷,mamicode.com
首页 > 其他好文 > 详细

容斥原理

时间:2017-08-18 23:37:52      阅读:119      评论:0      收藏:0      [点我收藏+]

标签:了解   利用   解决   元素   over   减法   nbsp   原理   条件   

  今天我获得了对容斥原理更宏观的一些微小的审视。

 

  在全集 $U$ 中, 我们有 $n$ 种性质 $P_1, P_2, ..., P_n$ , 它们对应 $U$ 的子集 $S_1, S_2, ..., S_n$ .

  我们需要计算至少满足其中一种性质的元素个数, 即对所有限制条件取并, 即 $|S_1 \cup S_2 \cup ... \cup S_n|$ .

 

  我们考虑用满足其中一个限制条件的集合大小, 减去满足其中两个限制条件的集合大小, 加上满足其中三个限制条件的集合大小, 以此类推。

  $|S_1 \cup S_2 \cup ... \cup S_n| = |S_i| - |S_i \cap S_j| + |S_i \cap S_j \cap S_k| - ... + {(-1)} ^ {n-1}|S_1 \cap S_2 \cap ... \cap S_n|$ .

  如此下来, 能保证每个集合中的元素被计算有且仅有一次, 不在集合中的元素没有被计算。

  严谨地, 我们可以对 $S_1 \cup S_2 \cup ... \cup S_n$ 中的每个元素, 利用二项式定理进行计算其出现次数。

 

  容斥原理除了解决对所有条件取并的问题, 还可以拓展到对所有条件取交的问题。

  我们尝试利用减法原理, 用全集的大小减去不满足其中一个限制条件的元素个数。

  $|S_1 \cap S_2 \cap ... \cap S_n| = |U| - |\overline{S_1} \cup \overline{S_2} \cup ... \cup \overline{S_n} |$ .

 

  总结一下, 容斥原理用于解决计数问题, 将所有条件取并, 或者所有条件取交的限制条件进行转化。

容斥原理

标签:了解   利用   解决   元素   over   减法   nbsp   原理   条件   

原文地址:http://www.cnblogs.com/Sdchr/p/7392519.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!