算法与数据结构-离散数学之容斥定理

  由某城市一次对居民投资情况调查得知,在被调查的50位居民中,有28人参加银行储蓄,有24人购买债券,有12人既参加储蓄又购买债券,有10人既参加储蓄又购买股票,还有4人同时参加这三种投资.已知12个购买股票的人或者参加储蓄或者购买债券.那么不参加任何一种投资的居民人数有多少呢?

  这是一个有限集合的计数问题.利用容斥定理和文氏图可以很方便地解决有限集合的计数问题.

  在计数时,为了使若干集合重叠部分的元素的个数不被重复计算,人们研究出一种计数方法,这种方法的基本思想是:先不考虑重叠的情况,把包含于这些集合中的所有元素个数先分别计算出来,然后再把计数时重复计算的元素个数排斥出去,使得计算的结果既无遗漏又无重复,这种计数的方法称为容斥定理.

一、容斥定理

  容斥定理(简单情况)对任意两个有限集合AB,有

|A∪B|= |A|+|B|- |A∩B|

  其中|A|,|B|分别表示AB的元素个数.

  推广结论:对于任意三个有限集合A,B, C,有

|A∪B∪C|= |A|+|B|+|C|- |A∩B|- |A∩C| - |B∩C| +|A∩B∩C|

  有限集合的计数方法1:

  利用容斥定理的上述两个公式计算有限集合的元素个数.

  有限集合的计数方法2:

  文氏图法,即首先根据已知条件把对应的文氏图画出来,然后将已知集合的元素填入表示该集合的区域内.一般从几个集合的交集填起,根据计算结果将数字逐步填入所有的空白区域内.如果交集的数字是未知的,可以将其设为x,再根据已知条件列出方程或方程组,解出未知数x

更多: http://media.openedu.com.cn/media_file/netcourse/asx/lssx/fudao/zuoye9.html###222

你可能感兴趣的:(数据结构,c,算法)