集合 —— 集合与集合运算
【概述】
集合,是集合论中主要研究对象,是指具有某种特定性质的具体的或抽象的对象汇总而成的集体,其中,构成集合的这些对象则称为该集合的元素。
集合中元素的数目称为集合的基数,集合 A 的基数记作:card(A),当其为有限大时,集合 A 称为有限集,反之则为无限集,简单来说,含有有限个元素的集合叫做有限集,含无限个元素的集合叫做无限集。
一个集合具有三个特性:确定性、互异性、无序性。其中,确定性是指给定一个元素其在集合中是否存在是确定的,互异性是指一个集合中任何两个元素都是不同的,无序性是指一个集合中元素间是无序的。
在 STL 中,利用 set 和 multiset 容器可以快速的解决集合问题,关于 set 与 multiset:点击这里
【集合分类】
1.全集与子集
如果一个集合含有所研究问题中涉及的所有元素,那么就称这个集合为全集,记作:U
设 S、T 是两个集合,如果 S 的所有元素都属于 T,则称 S 是 T 的子集,记为:
显然,对于一个集合自身与空集有:
如果 S 是 T 的一个子集,但在 T 中存在一个元素 x 不属于 S,即:,则称 S 是 T 的一个真子集
2.空集
空集是特殊的集合,其不包含任何元素,记为:∅
其有 2 个特点:
- 空集是任意一个非空集合的真子集
- 空集是任何一个集合的子集
3.交并集
交集是由属于 A 且属于 B 的相同元素组成的集合,记作:A∩B
并集是由属于集合 A 或属于集合 B 的所有元素所组成的集合,记作:A∪B
5.补集
补集分为相对补集和绝对补集:
- 由属于 A 而不属于 B 的元素组成的集合,称为 B 关于 A 的相对补集,记作:A-B 或 A\B
- A 关于全集合 U 的相对补集称作 A 的绝对补集,记作:A' 或 Cu(A) 或 ~A
6.幂集
对于一个集合 A,其所有子集组成的集合,称为集合 A 的幂集。
性质:有限集 A 的幂集的基数等于 2 的有限集 A 的基数次幂。
7.相等集合
如果两个集合 S 和 T 的元素完全相同,则称 S 与 T 两个集合相等,记为:S=T
有:
【集合运算】
对于两个集合 A、B 存在以下运算:
- 交换律:A∩B=B∩A、A∪B=B∪A
- 结合律:A∪(B∪C)=(A∪B)∪C、A∩(B∩C)=(A∩B)∩C
- 分配对偶律:A∩(B∪C)=(A∩B)∪(A∩C)、A∪(B∩C)=(A∪B)∩(A∪C)
- 对偶律:(A∪B)^C=A^C∩B^C、(A∩B)^C=A^C∪B^C
- 同一律:A∪∅=A、A∩U=A
- 求补律:A∪A'=U、A∩A'=∅
- 对合律:A''=A
- 等幂律:A∪A=A、A∩A=A
- 零一律:A∪U=U、A∩∅=∅
- 吸收律:A∪(A∩B)=A、A∩(A∪B)=A
- 德·摩根律:(A∪B)'=A'∩B'、(A∩B)'=A'∪B'
- 容斥原理:card(A∪B)=card(A)+card(B)-card(A∩B)
card(A∪B∪C)=card(A)+card(B)+card(C)-card(A∩B)-card(B∩C)-card(C∩A)+card(A∩B∩C)
利用 bitset 表示集合时,由于二进制位运算的特点,当两个集合 A、B 逐位进行位运算 A&B、A|B、A^B 时,分别对应两个集合的交集、并集、对称差集
此外,当全为 0 时,表示空集;当全为 1 时,表示全集,即 allBits=(1<<n)-1,那么,对于集合 A 的补集为:allBits^A
关于 bitset:点击这里
【例题】
- Equalize the Remainders(CF-999D)(set+模拟):点击这里
- 找连续数(HDU-5247)(set+打表):点击这里
- 矩阵中不重复的元素(51Nod-1024)(set+暴力):点击这里
- The Brand New Function(CF-224C)(set+暴力):点击这里
- Colorful Graph(CF-246D)(set+暴力):点击这里
- Make a Rectangle(Atcoder-2696)(multiset+优先队列):点击这里
集合 —— 集合与集合运算相关推荐
- 2020高考一轮复习数学:必修1集合的概念及运算【经典例题及解析】
大家好,今天分享高中数学最基础的知识点,高中数学集合的概念及运算模拟题解析,提供给大家高考一轮复习提供帮助. 一.选择题 二.填空题 好了,今天分享就到这里了,本文有电子版还有不知道规划好高中数学学习 ...
- 数学表达式: 从恐惧到单挑 (2. 集合的表示与运算)
2. 集合的表示与运算 集合论是数学的基础, 更是计算机的基础. 这次不玩集合悖论. 集合元素无序. 默认情况下, 集合元素不可重 (组合数学中有可重集的概念). 2.1 集合的表示 枚举法 A={0 ...
- python中集合运算_Python中的集合操作与集合运算
Python中的集合是一种无序的,无重复值的数据结构类型.Python中的集合可以用来检测元素检测或消除重复的元素. 一.python 集合概述 (1)Python中的集合元素是无序的,即元素没有顺序 ...
- 【Groovy】集合遍历 ( 使用集合的 findAll 方法查找集合中符合匹配条件的所有元素 | 代码示例 )
文章目录 一.使用集合的 findAll 方法查找集合中符合匹配条件的所有元素 1.闭包中使用 == 作为 findAll 方法的查找匹配条件 2.闭包中使用 is 作为 findAll 方法的查找匹 ...
- Redis 小白指南(二)- 聊聊五大类型:字符串、散列、列表、集合和有序集合...
Redis 小白指南(二)- 聊聊五大类型:字符串.散列.列表.集合和有序集合 引言 开篇<Redis 小白指南(一)- 简介.安装.GUI 和 C# 驱动介绍>已经介绍了 Redis 的 ...
- 集合添加元素python_Python 集合(Set)
Python 集合(Set) 在本文中,您将学习关于Python集的所有内容;如何创建它们.添加或删除其中的元素,以及在Python中对集合执行的所有操作. Python中的集合是什么? 集合是项目的 ...
- python集合运算符_Python 集合、字典、运算符
先区分一下序列类型和散列类型: 序列类型:list.string.tuple,他们中的元素是有序的. 散列类型:set.dict,他们中的元素无序的.(注意:python3.7.0开始字典变成&quo ...
- sql server运算符_了解SQL Server中集合理论与集合运算符之间的相互作用
sql server运算符 In this article, we will describe the relation between the Set Theory and SQL Server S ...
- python的集合类型_python集合类型
集合类型简介 集合也是容器,其内元素都是无序.唯一.不可变的.它常用来做成员测试.移除重复数据.数据计算(比如交集.并集.差集). 集合Set是dict的无value版.集合也使用大括号包围: > ...
- Java中的Collection集合以及Collection集合实现类实例
Collection集合 集合概述 集合的体系特点 Collection集合常用API Collection集合的遍历方式 方式一:迭代器 方式二:foreach/增强for循环 方式三:lambda ...
最新文章
- python采集bandwidth信息
- ProGen:蛋白质生成语言模型
- 基于 FPGA 的并行全比较排序算法,topK
- c语言不安全库_为什么和其他语言相比C语言是快速的语言?
- 下一代网络安全将全部基于行为识别
- Ubuntu 16.04 LTS 安装Mongodb 3.4
- HiveQL学习笔记(二):Hive基础语法与常用函数
- win7开机有画面进系统黑屏怎么办
- 车辆控制知识总结(一):LQR算法
- Openrefine mysql_openrefine 2.5稳定版-OpenRefine下载(数据清洗工具) 2.5 官方稳定版 - 河东下载站...
- 学习vb6.0视频教程网址
- python2安装biopython
- delphi oracle 三层,delphi+Oracle做的三层结构的干部管理系统
- 在屏幕上绘制圆形函数
- 双向链表DoublyLinkedList类
- 香港虚拟主机租用价格
- python识别验证码 免费API接口
- SpringCloud从入门到精通(超详细文档)
- 基于微信小程序的学生社团管理系统
- 西门子1200程序与威纶通实例,设备已经运行生产,博图V15