文章目录

  • 一、 容斥原理
  • 二、 容斥原理 示例

一、 容斥原理


A1,A2,⋯,AnA_1 , A_2 , \cdots , A_nA1​,A2​,⋯,An​ 是 nnn 个集合 ; 则 这 nnn 个集合 并集的元素个数 是 :

∣⋃i=1nAi∣=∑i=1n∣Ai∣−∑i<j∣Ai∩Aj∣+∑i<j<k∣Ai∩Aj∩Ak∣−⋯+(−1)n−1∣A1∩A2∩⋯∩An∣| \bigcup_{i=1}^{n} A_i | = \sum_{i = 1}^n | A_i | - \sum_{i < j} | A_i \cap A_j | + \sum_{i < j < k} | A_i \cap A_j \cap A_k | - \cdots + ( -1 )^{n - 1} | A_1 \cap A_2 \cap \cdots \cap An |∣i=1⋃n​Ai​∣=i=1∑n​∣Ai​∣−i<j∑​∣Ai​∩Aj​∣+i<j<k∑​∣Ai​∩Aj​∩Ak​∣−⋯+(−1)n−1∣A1​∩A2​∩⋯∩An∣

解析 :

nnn 个集合进行并运算后 , 元素个数 , 通常使用 容斥原理 进行计算 ;

∑i=1n∣Ai∣\sum_{i = 1}^n | A_i |∑i=1n​∣Ai​∣ : 将每个集合中的 元素个数 相加 , 该值大于 总元素数 , 需要进行修正 ; ( 系数值 (−1)0(-1)^0(−1)0 )

∑i<j∣Ai∩Aj∣\sum_{i < j} | A_i \cap A_j |∑i<j​∣Ai​∩Aj​∣ : 减去两两相交的元素个数 , 该值又小于 总元素数 , 继续进行修正 ; ( 系数值 (−1)1(-1)^1(−1)1 )

∑i<j<k∣Ai∩Aj∩Ak∣\sum_{i < j < k} | A_i \cap A_j \cap A_k |∑i<j<k​∣Ai​∩Aj​∩Ak​∣ : 加上三个集合相交的元素个数 , 该值大于 总元素数 , 继续进行修正 ; ( 系数值 (−1)2(-1)^2(−1)2 )

减去四个集合相交的元素个数 , 该值小于 总元素数 , 继续进行修正 ; ( 系数值 (−1)3(-1)^3(−1)3 )

⋮\vdots⋮

(−1)n−1∣A1∩A2∩⋯∩An∣( -1 )^{n - 1} | A_1 \cap A_2 \cap \cdots \cap An |(−1)n−1∣A1​∩A2​∩⋯∩An∣ : 加上 (−1)n−1( -1 )^{n - 1}(−1)n−1 乘以 n−1n-1n−1 个集合相交的元素个数 ; ( 系数值 (−1)n−1(-1)^{n-1}(−1)n−1 )

上述 奇数个集合 交集元素个数 前系数是 正数 , 偶数个集合 交集元素个数 前系数是 负数 ;

二、 容斥原理 示例


111 ~ 100001000010000 之间 , 既不是某个整数的平方 , 又不是某个整数的立方 , 的数个数 ?

全集 : EEE 集合是全集 , 是 111 到 100001000010000 的自然数 , EEE 集合的个数 ∣E∣=10000|E| = 10000∣E∣=10000

平方对应的数集合 AAA : AAA 集合是 某个数 的平方 对应的 某个数 集合 , A={x∈E∣x=k2∧k∈Z}A = \{ x \in E | x = k^2 \land k \in Z \}A={x∈E∣x=k2∧k∈Z} , AAA 集合元素个数是 ∣100∣|100|∣100∣ ;

1002=10000100^2 = 100001002=10000 , 因此 AAA 集合的元素是 {0,1,2,⋯,100}\{0, 1, 2 , \cdots , 100 \}{0,1,2,⋯,100} , 元素个数有 100100100 个 ; 12,22,33,⋯,10021^2 , 2^2 , 3^3, \cdots ,100^212,22,33,⋯,1002 都在 111 到 100001000010000 之间 , 1012=10201101^2 = 102011012=10201 就超过 100001000010000 了 ;

立方对应的数集合 BBB : BBB 集合是 某个数 的立方 对应的 某个数 集合 , B={x∈E∣x=k3∧k∈Z}B = \{ x \in E | x = k^3 \land k \in Z \}B={x∈E∣x=k3∧k∈Z} , AAA 集合元素个数是 ∣21∣|21|∣21∣ ;

213=926121^3 = 9261213=9261 , 因此 BBB 集合的元素是 {0,1,2,⋯,21}\{0, 1, 2 , \cdots , 21 \}{0,1,2,⋯,21} , 元素个数有 212121 个 ; 13,23,33,⋯,2131^3 , 2^3 , 3^3, \cdots ,21^313,23,33,⋯,213 都在 111 到 100001000010000 之间 , 222=1064822^2 = 10648222=10648 就超过 100001000010000 了 ;

计算 A∩BA \cap BA∩B 集合的交集 CCC : 元素个数 , 既是平方 , 又是立方 , 肯定是六次方的数 , C={x∈E∣x=k6∧k∈Z}C= \{ x \in E | x = k^6 \land k \in Z \}C={x∈E∣x=k6∧k∈Z} , CCC 集合的元素个数是 444 ;

46=40964^6 = 409646=4096 , 因此 CCC 集合的元素是 {1,2,3,4}\{1, 2 , 3, 4\}{1,2,3,4} , 元素个数有 444 个 ; 16,26,36,461^6 , 2^6 , 3^6, 4^616,26,36,46 都在 111 到 100001000010000 之间 , 56=15,6255^6 = 15,62556=15,625 就超过 100001000010000 了 ;

题目可以转化成 : 集合 ZZZ 中 , 既不属于 AAA 集合 , 有不属于 BBB 集合 的数字 ;

集合 AAA 与 集合 BBB 并集是 A∪BA \cup BA∪B

上述并集 的 绝对补集 ∼(A∪B)\sim ( A \cup B )∼(A∪B) 元素个数 ∣∼(A∪B)∣|\sim ( A \cup B ) |∣∼(A∪B)∣ , 就是题目中要求的结果 ;

∣∼(A∪B)∣=∣E∣−∣A∪B∣|\sim ( A \cup B ) | = |E| - |A \cup B|∣∼(A∪B)∣=∣E∣−∣A∪B∣

上述式子中 , ∣E∣=10000|E| = 10000∣E∣=10000 , ∣A∪B∣|A \cup B|∣A∪B∣ 值可以使用 容斥原理 进行计算 ;

∣A∪B∣|A \cup B|∣A∪B∣ 两个集合并集的元素个数 , 可以使用两个集合的元素个数相加 , 然后减去两个集合交集的元素个数 ;

∣A∪B∣=∣A∣+∣B∣−∣A∪B∣=100+21−4=117|A \cup B| = |A| + |B| - |A \cup B| = 100 + 21 - 4 = 117∣A∪B∣=∣A∣+∣B∣−∣A∪B∣=100+21−4=117

代入总的公式 : ∣∼(A∪B)∣=∣E∣−∣A∪B∣=10000−117=9883|\sim ( A \cup B ) | = |E| - |A \cup B| = 10000 - 117 = 9883∣∼(A∪B)∣=∣E∣−∣A∪B∣=10000−117=9883

【集合论】容斥原理 ( 包含排斥原理 | 示例 )相关推荐

  1. 【离散数学】集合的包含排斥原理

    包含排斥原理是集合论的基本内容,用于解决集合的计数问题. 一般地,有 n n n个有限集合 A 1 , A 2 , . . . , A n A_{1},A_{2},...,A_{n}

  2. 排斥原理c语言代码,包含排斥原理.ppt

    包含排斥原理 第三章 集合与关系第3讲 3-3 包含排斥原理 (容斥原理) 要求: 掌握n个集合的包含排斥原理,并应用它求解实际问题. 复习:集合的运算 (交.并.补.对称差) 1.交集 定义3-2. ...

  3. 利用包含排斥原理求出给定范围内素数个数的问题

    一.前提 今天上离散数学课上看到一个题目:使用包含排斥原理求不超过120的素数个数,其实按照一般算法是这样的: count = 0 l = [] for x in range(121):#判断如果x是 ...

  4. 运用计算机计算包含排斥原理,离散数学包含及排斥原理.ppt

    离散数学包含及排斥原理 第三章 集合与关系 * 一.有限集的计数 一个集合若其组成集合的元素个数是有限的,则称作有限集. 设A1.A2为素个数分别记为|A1|,|A2| P96有限集记数有如下几个性质 ...

  5. 使用包含排斥原理求 1~120 之间的素数个数。

    今天写题目时遇到的一个小问题,开始没有头绪,在仔细阅读了离散数学中的相关概念后,决定写个博客纪念一下. 原理:所有的合数都可由若干个素数因子的积构成. 什么意思呢?举个栗子:21=3*7: 现在我们的 ...

  6. 【集合论】序关系 ( 哈斯图示例 | 整除关系哈斯图 | 包含关系哈斯图 | 加细关系哈斯图 )

    文章目录 一.哈斯图示例 ( 整除关系 ) 二.哈斯图示例 ( 包含关系 ) 三.哈斯图示例 ( 加细关系 ) 一.哈斯图示例 ( 整除关系 ) 集合 A={1,2,3,4,5,6,9,10,15}A ...

  7. boost::graph模块实现包含平均测地线示例

    boost::graph模块实现包含平均测地线示例 实现功能 C++实现代码 实现功能 boost::graph模块实现包含平均测地线示例 C++实现代码 #include <iostream& ...

  8. 鼠标移动方块的mask碰撞检测原理示例程序

    """鼠标移动方块的mask碰撞检测原理示例程序 """ import pygame from pygame.locals import * ...

  9. 【愚公系列】2023年05月 网络安全高级班 071.WEB渗透与安全(文件包含漏洞原理利用防御)

    文章目录 前言 一.文件包含漏洞原理利用防御 1.原理 1.1 简介 1.2 分类 1.3 代码 1.3.1 shell语句 1.3.2 包含语句 2.渗透 2.1 低安全级别 2.1.1 本地文件包 ...

  10. 生成对抗网络简介(包含TensorFlow代码示例)【翻译】

    判别模型 vs. 生成模型 示例:近似一维高斯分布 提高样本多样性 最后的思考 关于GAN的一些讨论 最近,大家对生成模型的兴趣又开始出现(OpenAI关于生成模型的案例).生成模型可以学习如何生成数 ...

最新文章

  1. int数组初始化_Java中到底有没有多维数组
  2. springboot mybatis-plus 配置 yml 、druid 配置 yml 、mybatis-plus 代码生成
  3. 计算机网络数据链路层检错编码 --- 循环冗余码CRC
  4. 2017.9.6 音量调节 思考记录
  5. 如何在同一地方组建多个 ZigBee 网络
  6. hashmap面试问题
  7. Java中的内部类与匿名内部类
  8. 超硬核讲解数据结构与算法之线性表
  9. 全球十大数据治理解决方案提供商
  10. HTML文本格式化标签(用来调整文本的格式和排版)
  11. win10配置系统默认utf-8编码
  12. Excel如何批量添加邮箱后缀
  13. [Style Transfer]—Combining Markov Random Fields and Convolutional Neural Network for Image Synthesis
  14. 学生台灯哪个品牌的专业?盘点小学生台灯品牌排行榜
  15. 一文学会VOS中限制某个地区的固话和手机
  16. 松翰烧录器在keil仿真时闪退,解决方法
  17. caffe中的layer
  18. 12月编程语言排行榜,java跌至低点,低代码发展迅猛
  19. 后台向前台传反斜杠、单引号等特殊字符问题
  20. 3dmax2016软件安装说明

热门文章

  1. react-cnode实践笔记
  2. Hadoop学习之hadoop安装、JDK安装、集群启动(完全分布式)
  3. 弘辽科技:开庭了辛巴被诉“永久封号”
  4. saspython知乎_【SAS学习笔记】mac环境的下载和配置SAS
  5. VB.NET连接SQL数据库
  6. 单片机pic的linux环境代替,pic单片机can总线协议收发编程
  7. DSP28335定时器
  8. 学习笔记五:xss.tv通关笔记
  9. 基于RV1126平台imx291分析 --- rkcif_mipi注册
  10. PyQt5:入门使用教程