あいさか たいがblogAisaka_Taiga的博客
//https://img2018.cnblogs.com/blog/1646268/201908/1646268-20190806114008215-138720377.jpg

容斥原理

Toretto·2023-05-22 08:18·34 次阅读

容斥原理

抽屉原理#

或者说是鸽巢原理

它常用于证明存在性证明和求最坏情况下的解

n+1 个物体,划分为 n 组,那么有至少一组有两个及以上的物体

显然好吧

假设每一个分组有至多一个物体,那么最多有 1×n 个物体,而实际上我们是放了 n+1 个物体,显然需要把多出来的一个放到其中一个分组中,那样就出现了上述情况。

我们来推广到一般情况

n 个物体,划分为 k 组,那么至少存在一个分组,含有大于等于 nk 个物品

若每个分组含有小于 nk 个物体,则其总和 :

s(nk1)×k=knkk<k(nk+1)k=n

矛盾,故得证。

容斥原理

引入#

我们在学习统计集合之类的见过一类问题

假设班里有 10 名同学喜欢下棋,15 名同学喜欢游泳,21 名同学喜欢踢足球,求班里一共有多少名学生(每一名学生至少喜欢一项)

10+15+21=46 个吗?显然不是,因为有人可以同时喜欢两项,甚至三项都喜欢,这个时候我们的答案是不固定的。

我们用 A,B,C 表示下棋,游泳,踢足球的同学的集合,则学生总数是 |ABC| 。刚才说过,如果直接累加 |A|,|B|,|C| 有的元素会被重复统计,根据下图,我们需要扣去 |AB|,|BC|,|CA|,但这样一来,中间一小部分多扣了,我们需要加回来,即 |ABC|,所以我们最后得到:

|ABC|=|A|+|B|+|C||AB||BC||CA|+|ABC|

推广到一般情况。

定义#

U 中元素有 n 中不同的属性,而第 i 种属性称为 Pi,拥有属性 Pi 的元素构成集合 Si,那么:

|i=1nSi|=i|Si|i<j|SiSj|+i<j<k|SiSjSk|+(1)m1ai<ai+1|i=1mSai|++(1)n1|S1Sn|

即:

|i=1nSi|=m=1n(1)m1ai<ai+1|i=1mSai|

证明:

对于每一个元素使用二项式定理计算其出现的次数,对于元素 x,假设他出现在 T1,T2,,Tm 的集合中,那么他的出现次数为:

Cnt=|{Ti}||{TiTj|i<j}|++(1)k1|{i=1mTai|ai<ai1}|++(1)m1|{T1Tm}|

=(m1)(m2)++(1)m1(mm)

=(m0)i=0m(1)i(mi)

1(11)m=1

于是每一个元素出现的次数为 1,那么合并起来就是并集。

posted @   北烛青澜  阅读(34)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示
目录