容斥原理 证明

Intro

容斥原理是表示集合元素个数之间的关系

公式如下:

|i=1n(Ai)|=i=1n|Ai|i<j|AiAj|+i<j<k|AiAjAk|...+(1)n1|A1A2...An|

其中,|An|表示集合An的元素个数


证明思路:

每个元素a|i=1n(Ai)|中的个数只算作一次,只要证明某元素aA在右侧的个数只算作一次即可。

证明:

设元素a包含在k个集合中出现

在右边公式第一项里,只要在该k个集合中某一个出现,就会计数一次,因此为k=Ck1

在右边公式第二项里,其为两个集合的交集,因此必须挑出该k个集合中的两个,其组成的交集才会计数一次,因此为Ck2

同理,第三项,其为三个集合的交集,因此必须在该k个集合中三个的交集组合,才会被计数一次,因此为Ck3

以此类推,在右边计数次数为Ck1Ck2+Ck3Ck4+...+(1)n1Ckk=i=0k(1)i+1Cki+1=1

即证

|i=1n(Ai)|=i=1n|Ai|i<j|AiAj|+i<j<k|AiAjAk|...+(1)n1|A1A2...An|

其中,|An|表示集合An的元素个数

应用

错位排列

聚会上,n位同学将各自的名片放到桌子上,再将名片打乱后随机分配给这些同学,有多少种方式使他们中没有人能够拿到自己的名片?

首先需要对题目进行翻译,即相当于名片原来放在桌子上排成一列,现重新打乱顺序,而且要求新的顺序和旧的顺序没有一个重叠,即没有一个位置和原来是一样的。 不妨设|Ai|为第i个名片是在原来位置上的排列

则本题目等价于求解|A1A2An|=|A1A2An|
https://zhuanlan.zhihu.com/p/137941999

posted @   jerry_wuu  阅读(194)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话
点击右上角即可分享
微信分享提示