![人工智能数学基础](https://wfqqreader-1252317822.image.myqcloud.com/cover/67/38507067/b_38507067.jpg)
2.4 集合[1]
2.4.1 集合的相关概念
1.集合的定义
虽然集合是数学及相关学科不可缺少的表示数据的工具,但目前我们还很难给出集合的精确定义,一般都采用描述的方式对集合进行定义。
定义2-21 具有相同性质的一组事物所构成的整体就可描述成一个集合。构成集合的单个事物称为该集合的元素。
例如:某学校的全体学生构成了一个集合,而该学校的每个学生都是该集合中的一个元素。
2.集合的表示
集合的表示:通常用大写的英文字母A,B,C,…表示集合。
元素的表示:通常用小写的英文字母a,b,c,…表示集合中的元素。
3.集合和元素之间的关系
定义2-22 若是集合
中的一个元素,则称
属于
,并记作
;若
不是集合
中的元素,则称
不属于
,并记作
。
4.集合的特点
(1)无序性:构成集合的元素在集合中无位置和顺序的区分,如A={1,2,3,4}和B={3,2,4,1}可看作同一集合。
(2)互异性:在一个已经定义的集合中,不允许存在多个相同的元素。
(3)确定性:集合和元素之间是隶属关系,即元素属于集合。对于某个元素来说,它在集合中是否存在是确定的。
5.集合的描述
集合的描述可用如下方法。
(1)穷举法。穷举法有时也称为列举法,即将构成某集合的元素全部列举出来。
如、
{学生,教师,校长}等表示集合,显然,
,
;学生
,工人
。
Python中可用如下的方式定义集合:
![img](https://epubservercos.yuewen.com/10291D/20266983808220206/epubprivate/OEBPS/Images/txt002_332.jpg?sign=1739282678-Ra3561p7IU5erbv1ey5uRdBW60aHbKU6-0-99df676d11c0dc616f6b3fca72873fe9)
输出结果如下:
![img](https://epubservercos.yuewen.com/10291D/20266983808220206/epubprivate/OEBPS/Images/txt002_333.jpg?sign=1739282678-nHybbmSJvobkmNHkDDPLm122FTwsZkG8-0-536296adff45195c4d9b35f144d17107)
输出结果如下:
![img](https://epubservercos.yuewen.com/10291D/20266983808220206/epubprivate/OEBPS/Images/txt002_334.jpg?sign=1739282678-NRLLbDi4UJacj45nyNkIy0u5iaekcRpA-0-0f73192080b07a76cf61e426e23b36c4)
从输出结果来看,集合中的元素具有无序性。
(2)谓词法。谓词法也称为描述法,就是将某集合中元素所具有的共同属性描述出来,形式如下:
T={x|x具有性质s}
如T={y|y是大于1小于10的所有整数}表示该集合T由元素2,3,4,5,6,7,8,9构成。
6.常用集合的表示
一些常用的集合表示如下:
N={x|x为自然数},表示自然数集合;
Z={x|x为整数},表示整数集合;
Z+={x|x为整数且x>0},表示正整数集合;
Q={x|x为有理数},表示有理数集合;
R={x|x为实数},表示实数集合;
C={x|x为复数},表示复数集合。
2.4.2 集合关系
1.子集
定义2-23 若集合中的每个元素都在集合
中出现,则称
是
的子集,记作
。
![img](https://epubservercos.yuewen.com/10291D/20266983808220206/epubprivate/OEBPS/Images/txt002_340.jpg?sign=1739282678-soQdfgG0nlCv5kHuVfL5OCufm7X1p5MS-0-4146ffea1449cd4b94df266f97682ef5)
如集合,
,则可知
。
如果,那么也称集合
包含于
。
同理:对于,也记作
,此时可称
包含
。
特别地,若,即集合
是集合
的子集,同时,集合
中至少存在一个元素不属于
,则称
是
的真子集,记作
或
。
![img](https://epubservercos.yuewen.com/10291D/20266983808220206/epubprivate/OEBPS/Images/txt002_360.jpg?sign=1739282678-TIcM1i4hVLiffq9lMH8GBMofj7phpT4N-0-dab4f006e79cd007c1948759229c1960)
如集合,
,则可知
。
2.相等集合
定义2-24 若两个集合和
互为子集,则称两个集合相等,记作
。
如,
,则
。
两个相等的集合包含的元素个数一定相等,对应元素也一定一样。
3.全集
定义2-25 若就某个讨论范围而言,集合是讨论范围内所有元素构成的集合,则称
是完全集,简称全集。
一般情况下,全集是对某个范围而言的,是一个相对概念。
如设={x|x是全体自然数},则称
为自然数范围的全集,但在比自然数大的范围(如整数集合),
就不再是一个全集。
4.空集
定义2-26 不包括任何元素的集合称为空集,记作。
空集是任何集合的子集。
5.幂集
定义2-27 对于有限个元素构成的集合简称有限集),由该集合的所有子集构成的集合称为该集合
的幂集,记作
,即
。
如,则
。
在集合的所有子集中,
和
又称为平凡子集。
假设是n个元素构成的有限集,则
的幂集
包含的元素个数为
个。
2.4.3 基数
集合中元素的个数对于集合运算来说意义非常大,集合的基数和集合的元素有很重要的联系。
1.集合等势
定义2-28 设、
为两个集合,若存在从
到
的双射函数,则称
与
是等势的,记作
。
根据集合等势的概念,凡是等势的集合,必定能够构成一一对应关系,即能够把两个集合的元素按照一对一的关系进行对应,这样的方法既可以用于有限集,又可以用于无限集。
2.集合的基数
(1)有限集的基数。
定义2-29 对于有限集,根据等势关系,将与
等势的唯一的自然数称为M的基数,记作
(或cardM)。空集的基数记作0。
根据集合基数的定义,有限集的基数就是集合中所包含元素的个数。同理,按照等势集合的定义,凡是具有相同元素的有限集都具有相同的基数,也就是说当与
按照等势关系属于同一类时,
与
就有相同的基数,即
。
结论:单个元素构成的集合的基数为1,两个元素构成的集合的基数为2,以此类推,一个有限集的基数与自然数构成一一对应的关系。
(2)无限集的基数。
对于无限集,虽然没有具体的数值,但按照等势集合的定义,无限集也有基数。下面规定:
自然数集合的基数称为阿列夫零
;
实数集合的基数称为阿列夫。
3.可数集和不可数集
对于有限元素构成的集合,其元素个数为集合的基数。
对于无限集,一般无法数出集合元素的个数,这时可以通过等势关系所建立的“映射”来确定集合的基数。
定义2-30 将能够与自然数集合等势的任何集合称为可数集合,简称可数集。将既不是有限集,又不是可数集的集合称为不可数集。
可数集的基数记作。如{1,2,3,4,…,n,…}{3,6,9,12,…,3n,…}{1,3,5,7,…,2n-1,…}都是可数集。
从上述定义和实例可以看出,可数集就是集合中的元素可以与自然数集合N的每个元素建立对应关系的集合,即可数集中的元素可以按照自然数的顺序排成类似于的序列。
2.4.4 集合运算
1.集合的交集运算
定义2-31 对任意两个集合、
,将由这两个集合的共同元素组成的集合
称为
和
的交集,记作
,如图2-3所示。
![img](https://epubservercos.yuewen.com/10291D/20266983808220206/epubprivate/OEBPS/Images/txt002_414.jpg?sign=1739282678-EF6pGqyha2elLBDuM2z0kUGD7QxMnb1j-0-9064b948f0bed9805883e247896c7d42)
![img](https://epubservercos.yuewen.com/10291D/20266983808220206/epubprivate/OEBPS/Images/txt002_415.jpg?sign=1739282678-xqM8AFpKGPuUhFk6r7x5at7ofgGNJdwU-0-2339fdfdafc30f8f914bbff2528b9728)
图2-3 A与B的交集
例2-10 和
是由学校计算机系专业课程构成的集合,且
={‘高等数学’,‘英语’,‘数据结构’,‘Python编程’},
={‘C语言程序设计’,‘Java程序设计’,‘英语’,‘编译原理’,‘数据结构’},则
={‘英语’,‘数据结构’}。
在Python中,、A.intersection(B)都表示A和B的交集。
2.集合的并集运算
定义2-32 对于任意两个集合、
,将由所有属于A和属于B的元素组成的集合M称为
和
的并集,记作
,如图2-4所示。
![img](https://epubservercos.yuewen.com/10291D/20266983808220206/epubprivate/OEBPS/Images/txt002_427.jpg?sign=1739282678-f0tE4RGQPz4R8XmFjb7kQj821apUYJ9N-0-4f32a205893eb7346d351f7b6a871bdc)
![img](https://epubservercos.yuewen.com/10291D/20266983808220206/epubprivate/OEBPS/Images/txt002_428.jpg?sign=1739282678-u5dC053mmnguHBM0uKxSI3yUOAtTQkqq-0-55c9029f443b5ca60381bf4f4bacc108)
图2-4 A与B的并集
例2-11 ={‘高等数学’,‘英语’,‘数据结构’,‘Python编程’},
={‘C语言程序设计’,‘Java程序设计’,‘英语’,‘编译原理’,‘数据结构’},则
={‘高等数学’,‘英语’,‘数据结构’,‘Python编程’,‘C语言程序设计’,‘Java程序设计’,‘编译原理’}。
在Python中,、A.union(B)都表示
和
的并集。
3.集合的补(差)集运算
定义2-33 设、
为任意两个集合,将由所有属于
但不属于
的元素组成的集合M称为
关于
的相对补集,或称集合的差,记作
,如图2-5所示。
![img](https://epubservercos.yuewen.com/10291D/20266983808220206/epubprivate/OEBPS/Images/txt002_442.jpg?sign=1739282678-JAITmBsRNrr0VlPkrodnl3pw8gB3ZqOA-0-e8246b7081a76acfcf170d7b8dc46238)
![img](https://epubservercos.yuewen.com/10291D/20266983808220206/epubprivate/OEBPS/Images/txt002_443.jpg?sign=1739282678-hhTUFLUzwyan7NfK2wS67LF6Xaz2qCgn-0-b6d6a08197952fb2088c2f6b42c5d0e3)
图2-5 B关于A的补集
若给定全集,有
,则
中不属于
的所有元素组成的集合称为
的绝对补集,或简称补集,记作CUA。
例2-12 ={‘高等数学’,‘英语’,‘数据结构’,‘Python编程’},
={‘C语言程序设计’,‘Java程序设计’,‘英语’,‘编译原理’,‘数据结构’},则
={‘高等数学’,‘Python编程’}。
在Python中,、A.difference(B)都表示A和B的差集。
4.集合的对称差运算
定义2-34 对于任意两个集合、
,将或属于
或属于
但不同时属于
和
的元素构成的集合M称为对称差,记作
,如图2-6所示。
![img](https://epubservercos.yuewen.com/10291D/20266983808220206/epubprivate/OEBPS/Images/txt002_460.jpg?sign=1739282678-rKSfLXxI3JSfkwsPiIPTh7YOFhc85g1o-0-ffab4c2f0fd482c35d83462dbc20d9d9)
![img](https://epubservercos.yuewen.com/10291D/20266983808220206/epubprivate/OEBPS/Images/txt002_461.jpg?sign=1739282678-asVnnUjEMSeesFaGSBe36buj6ySkPJvl-0-7fc7d5cb3ec3ad802bd228f0dfb9d24b)
图2-6 A与B的对称差
例2-13 ={‘高等数学’,‘英语’,‘数据结构’,‘Python编程’},
={‘C语言程序设计’,‘Java程序设计’,‘英语’,‘编译原理’,‘数据结构’},则
={‘高等数学’,‘Python编程’,‘C语言程序设计’,‘Java程序设计’,‘编译原理’}。
在Python中,、A.symmetric_difference(B)都表示
和
的对称差。
2.4.5 综合案例及应用
集合的运算可用于有限个元素的计数问题。
设是
个有限集,集合的基数(集合包含元素的个数)分别用
来表示,则对于
个有限集
来说,有如下结论:
![img](https://epubservercos.yuewen.com/10291D/20266983808220206/epubprivate/OEBPS/Images/txt002_473.jpg?sign=1739282678-ppKCFCL5Aw9elwWNAbVu8yqvIi4lbjI8-0-19aeedad5ef3f8e0e32eb279e35e5b00)
这个结论称为包含排斥原理。
例2-14 某学校计算机系的“双创”团队有20名学生,现要统计他们在某年度参加大赛的情况,大赛项目包括“网络大赛”“创新创业大赛”“云计算大赛”三大类;经过统计,在20名学生中,参加过“网络大赛”的有7名,参加过“创新创业大赛”的有8名,参加过“云计算大赛”的有5名,有3名学生同时参加过上述三类大赛,试求至少有多少名学生没参加过上述任何一项比赛,并计算参加大赛的学生所占的比例。
解:设={x|x参加过“网络大赛”},
={x|x参加过“创新创业大赛”},
={x|x参加过“云计算大赛”}。
由题意可知:,
,
,
。
![img](https://epubservercos.yuewen.com/10291D/20266983808220206/epubprivate/OEBPS/Images/txt002_481.jpg?sign=1739282678-XQHgj3f8VDnlLbVAP7r82LO2YySivGe3-0-339020f0e55e652bd51c26ec1cde1a27)
因为,
,
,所以
,即最多有14名学生参加过比赛,因此,至少有6名学生没参加过任何一项比赛。
利用Python程序实现上述实例的代码如下:
![img](https://epubservercos.yuewen.com/10291D/20266983808220206/epubprivate/OEBPS/Images/txt002_486.jpg?sign=1739282678-TB9eparGHEFthSYXxKrhxYm76o5kwCkk-0-a94926bb70116d2b5bfe112606fd3a14)
输出结果如下:
![img](https://epubservercos.yuewen.com/10291D/20266983808220206/epubprivate/OEBPS/Images/txt002_487.jpg?sign=1739282678-sBBVkb8VMm6dlqMghSqqkAWD5288hR1D-0-173f8b14d30bcef22b1b928c17b25324)