容斥原理

来源:互联网 发布:淘宝各行业数据分析 编辑:程序博客网 时间:2024/04/29 13:10

百度百科:

在计数时,必须注意无一重复,无一遗漏。为了使重叠部分不被重复计算,人们研究出一种新的计数方法,这种方法的基本思想是:先不考虑重叠的情况,把包含于某内容中的所有对象的数目先计算出来,然后再把计数时重复计算的数目排斥出去,使得计算的结果既无遗漏又无重复,这种计数的方法称为容斥原理。

两个集合的容斥关系公式:A∪B = A+B – A∩B (∩:重合的部分)
三个集合的容斥关系公式:A∪B∪C = A+B+C – A∩B – B∩C – C∩A +A∩B∩C
详细推理如下:
1、 等式右边改造 = {[(A+B – A∩B)+C – B∩C] – C∩A }+ A∩B∩C
2、文氏图分块标记如右图图:1245构成A,2356构成B,4567构成C
3、等式右边()里指的是下图的1+2+3+4+5+6六部分:
那么A∪B∪C还缺部分7。
4、等式右边[]号里+C(4+5+6+7)后,相当于A∪B∪C多加了4+5+6三部分,
减去B∩C(即5+6两部分)后,还多加了部分4。
5、等式右边{}里减去C∩A (即4+5两部分)后,A∪B∪C又多减了部分5,
则加上A∩B∩C(即5)刚好是A∪B∪C。
简单应用:

由0 到9 数字组成排列,要求第一个数大于1,最一个数小于8,一共有几种排列。
思路:
求逆问题,第一个数<=1,最后一个数>=8
由容斥原理,
则有 事件A(第一个数<=1) = 2*9!, 事件B(最后一个数>=8) = 2*9!, 事件C(A交B) C= 2*2*8!
所以逆问题的结果是 A+B-C
则问题的答案是 10!-(A+B-C)

0 0
原创粉丝点击