首页 > 其他分享 >容斥原理

容斥原理

时间:2024-05-29 14:49:13浏览次数:8  
标签:函数 sum 容斥 setminus choose 原理 subseteq

容斥原理

原理

引入 首先我们来看一个小学生的问题:

一个班中,学习日语的有 \(a\) 人,学习俄语的有 \(b\) 人,学习两科的有 \(c\) 人,求至少学了一门外语的人数有几人。

答案很明显,为 \(a+b-c\)。

容斥原理

\[|\bigcup _{i}A_i|=\sum_{i}\mid A_i\mid-\sum_{i<j}|A_i\cap A_j|+\sum_{i<j<k}|A_i\cap A_j\cap A_k|+\ldots+(-1)^{n-1}|\bigcap_{i}S_i| \]

证明:

对于元素 \(a\),假设 \(a\) 在上式子拆开后有 \(x\),有且仅有 \(m\) 个 \(A_i\) 集合包含 \(a\)。

那么右式中的贡献为:

\[x={m\choose1}-{m\choose2}+\ldots+(-1)^{m}{m\choose m}=\sum_{i=1}^m((-1)^{i-1}{m\choose i}) \]

我们可以构造一个式子:

\[(1-1)^m=0 \]

对它使用二项式展开:

\[0=\sum_{i=0}^{m}((-1)^{i-1}{m\choose i}) \]

于是:

\[\begin{matrix} x-{m\choose0}=0\\ x=1 \end{matrix} \]

反之,亦然。证毕。

例题

例1.

若 \(\sum x_i=m,x_i\in \N\),求 \(x_i\) 取值的方案数。

\((1)\) 对 \(x_i\) 无限制

则就是小球与挡板的问题。

共 \(\Large{m+n-1\choose m}\) 种方案。

\((2)\) 若 \(x_i\le b_i\)

例5. 欧拉函数

定义:\(\varphi(n)\) 表示 \(1\sim n\) 中与 \(n\) 互质的数的个数。这个函数叫做欧拉函数。求 \(\varphi(n)\) 的展开式。

例6. 广义容斥原理

容斥原理常用于集合的计数问题,而对于两个集合的函数 \(f(S),g(S)\),

\[f(S)=\sum_{T\subseteq S}g(T) \Leftrightarrow g(S)=\sum_{T\subseteq S}(-1)^{|S|-|T|}f(T) \]

证明

接下来我们简单证明一下。我们从等式的右边开始推:

\[\begin{aligned} &\sum_{T\subseteq S}(-1)^{|S|-|T|}f(T)\\ =&\sum_{T\subseteq S}(-1)^{|S|-|T|}\sum_{Q\subseteq T}g(Q)\\ =&\sum_{Q}g(Q)\sum_{Q\subseteq T\subseteq S}(-1)^{|S|-|T|}\\ \end{aligned} \]

我们发现后半部分的求和与 \(Q\) 无关,因此把后半部分的 \(Q\) 剔除:

\[=\sum_{Q}g(Q)\sum_{T\subseteq (S\setminus Q)}(-1)^{|S\setminus Q|-|T|} \]

记关于集合 \(P\) 的函数 \(F(P)=\sum_{T\subseteq P}(-1)^{|P|-|T|}\),并化简这个函数:

\[\begin{aligned} F(P)&=\sum_{T\subseteq P}(-1)^{|P|-|T|}\\ &=\sum_{i=0}^{|P|}\dbinom{|P|}{i}(-1)^{|P|-i}=\sum_{i=0}^{|P|}\dbinom{|P|}{i}1^i(-1)^{|P|-i}\\ &=(1-1)^{|P|}=0^{|P|} \end{aligned} \]

因此原来的式子的值是

\[\sum_{Q}g(Q)\sum_{T\subseteq (S\setminus Q)}(-1)^{|S\setminus Q|-|T|}=\sum_{Q}g(Q)F(S\setminus Q)=\sum_{Q}g(Q)\cdot 0^{|S\setminus Q|} \]

分析发现,仅当 \(|S\setminus Q|=0\) 时有 \(0^0=1\),这时 \(Q=S\),对答案的贡献就是 \(g(S)\),其他时侯 \(0^{|S\setminus Q|}=0\),则对答案无贡献。于是得到

\[\sum_{Q}g(Q)\cdot 0^{|S\setminus Q|}=g(S) \]

综上所述,得证。

推论

该形式还有这样一个推论。在全集 \(U\) 下,对于函数 \(f(S),g(S)\),

\[f(S)=\sum_{T\supseteq S}g(T) \Leftrightarrow g(S)=\sum_{T\supseteq S}(-1)^{|S|-|T|}f(T) \]

这个推论其实就是补集形式,证法类似。

标签:函数,sum,容斥,setminus,choose,原理,subseteq
From: https://www.cnblogs.com/gutongxing/p/18220235

相关文章

  • 深度解读chatGPT基本原理
    ChatGPT,这个听起来有点高科技的东西,其实简单来说就是一个特别聪明的聊天机器人。它能理解你的话,还能像真人一样和你聊天,回答问题,甚至帮忙做点事情。想知道它是怎么做到的吗?咱们一起揭开它的神秘面纱。1.基础概念:什么是ChatGPT?ChatGPT是OpenAI公司创造的一种人工智能技术,它......
  • FITC PEG1K FITC,荧光素 PEG 荧光素,FITC反应原理主要涉及荧光标记和生物分子的偶联
    一、试剂基团反应特点(Reagentgroupreactioncharacteristics):FITC-PEG中的FITC(异硫氰酸荧光素)与PEG(聚乙二醇)的结合,形成了一种具有独特性质的化合物。FITC-PEG的FITC反应原理主要涉及荧光标记和生物分子的偶联。1.荧光标记:FITC本身是一种荧光染料,其分子结构中含有荧光基团。......
  • net/http shutdown退出的原理
      使用nginxreload的时候,nginx会close掉listenfd,然后启动新的worker,老的worker继续工作直到当前的fd完全关闭后worker退出。目前使用gin框架的时候也需要频繁的在http:9000监听和htttps:9000之间切换。所以也涉及到上述逻辑看下gin框架中run启动listen的逻辑//Runat......
  • python中的静态方法:@staticmethod 原理及应用
    @staticmethod是一个Python装饰器,用于声明一个方法为静态方法。静态方法不接受特定的实例或类参数(即没有self或cls参数),它们可以直接通过类调用,而不需要创建类的实例。静态方法的行为更接近于普通的函数。这是一个例子:classMyClass:@staticmethoddefmy_method(x,y)......
  • LoRa无线通信低功耗原理
    LoRa无线通信模块的工作原理主要基于扩频调制技术,特别是采用了ChirpSpreadSpectrum(CSS)调制方式。这种技术通过线性频率调制(LFM)产生“啁啾”信号,每个数据包的载波频率随着时间线性变化,从而实现远距离、低功耗和高抗干扰性的通信特性。在发送过程中,LoRa模块首先将要......
  • 深入解析Java类加载机制:原理、过程与实践
    深入解析Java类加载机制:原理、过程与实践Java的类加载机制是Java虚拟机(JVM)运行时环境的核心组件,它决定了Java类和接口的加载、连接和初始化方式。这一机制不仅确保了应用程序的安全性和稳定性,还提供了灵活的动态加载能力,使得Java程序能够在运行时加载和使用外部类。这篇文......
  • Android 关于MVP、MVC、MVVM原理、使用方法、优缺点以及共同之处与不同之处详细介绍
    Android关于MVP、MVC、MVVM原理、使用方法、优缺点以及共同之处与不同之处详细介绍Android应用程序的设计模式,常见的三种模式是MVP(Model-View-Presenter)、MVC(Model-View-Controller)和MVVM(Model-View-ViewModel)。它们在设计和组织Android应用程序中起着不同的作用,都......
  • 【编译原理】小型语法编译器-Gradio界面设计
    前言本文部分内容来自网上搜集与个人实践。如果任何信息存在错误,欢迎读者批评指正。本文仅用于学习交流,不用作任何商业用途。欢迎订阅专栏Gradio文章目录前言all/gui.pylexical_analysis.py导入库定义辅助函数`analyze_token`定义词法分析函数`lexical_analysis`......
  • synchronized原理
    对象头(markword,数组长度,类型指针)  实例数据(字段1,字段2) 对齐填充(对其字节)synchronized修饰方法多了一个ACC_SYNCHRONIZED标识符synchronized修饰代码块monitorenter和monitorexitObjectMonitor里_EntryList和_WaitSet1.线程在竞争synchronized锁的时候,jvm首......
  • Hadoop HDFS NameNode核心原理分析
    胡弦,视频号2023年度优秀创作者,互联网大厂P8技术专家,SpringCloudAlibaba微服务架构实战派(上下册)和RocketMQ消息中间件实战派(上下册)的作者,资深架构师,技术负责人,极客时间训练营讲师,四维口袋KVP最具价值技术专家,技术领域专家团成员,2021电子工业出版社年度优秀作者,获得2023电......