人工智能数学基础
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.4 集合[1]

2.4.1 集合的相关概念

1.集合的定义

虽然集合是数学及相关学科不可缺少的表示数据的工具,但目前我们还很难给出集合的精确定义,一般都采用描述的方式对集合进行定义。

定义2-21 具有相同性质的一组事物所构成的整体就可描述成一个集合。构成集合的单个事物称为该集合的元素。

例如:某学校的全体学生构成了一个集合,而该学校的每个学生都是该集合中的一个元素。

2.集合的表示

集合的表示:通常用大写的英文字母A,B,C,…表示集合。

元素的表示:通常用小写的英文字母a,b,c,…表示集合中的元素。

3.集合和元素之间的关系

定义2-22 img是集合img中的一个元素,则称img属于img,并记作img;若img不是集合img中的元素,则称img不属于img,并记作img

4.集合的特点

(1)无序性:构成集合的元素在集合中无位置和顺序的区分,如A={1,2,3,4}和B={3,2,4,1}可看作同一集合。

(2)互异性:在一个已经定义的集合中,不允许存在多个相同的元素。

(3)确定性:集合和元素之间是隶属关系,即元素属于集合。对于某个元素来说,它在集合中是否存在是确定的。

5.集合的描述

集合的描述可用如下方法。

(1)穷举法。穷举法有时也称为列举法,即将构成某集合的元素全部列举出来。

imgimg{学生,教师,校长}等表示集合,显然,imgimg;学生img,工人img

Python中可用如下的方式定义集合:

img

输出结果如下:

img

输出结果如下:

img

从输出结果来看,集合中的元素具有无序性。

(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中的每个元素都在集合img中出现,则称imgimg的子集,记作img

img

如集合imgimg,则可知img

如果img,那么也称集合img包含于img

同理:对于img,也记作img,此时可称img包含img

特别地,若img,即集合img是集合img的子集,同时,集合img中至少存在一个元素不属于img,则称imgimg的真子集,记作imgimg

img

如集合imgimg,则可知img

2.相等集合

定义2-24 若两个集合imgimg互为子集,则称两个集合相等,记作img

imgimg,则img

两个相等的集合包含的元素个数一定相等,对应元素也一定一样。

3.全集

定义2-25 若就某个讨论范围而言,集合img是讨论范围内所有元素构成的集合,则称img是完全集,简称全集。

一般情况下,全集是对某个范围而言的,是一个相对概念。

如设img={x|x是全体自然数},则称img为自然数范围的全集,但在比自然数大的范围(如整数集合),img就不再是一个全集。

4.空集

定义2-26 不包括任何元素的集合称为空集,记作img

空集是任何集合的子集。

5.幂集

定义2-27 对于有限个元素构成的集合img简称有限集),由该集合的所有子集构成的集合称为该集合img的幂集,记作img,即img

img,则img

在集合img的所有子集中,imgimg又称为平凡子集。

假设imgn个元素构成的有限集,则img的幂集img包含的元素个数为img个。

2.4.3 基数

集合中元素的个数对于集合运算来说意义非常大,集合的基数和集合的元素有很重要的联系。

1.集合等势

定义2-28 imgimg为两个集合,若存在从imgimg的双射函数,则称imgimg是等势的,记作img

根据集合等势的概念,凡是等势的集合,必定能够构成一一对应关系,即能够把两个集合的元素按照一对一的关系进行对应,这样的方法既可以用于有限集,又可以用于无限集。

2.集合的基数

(1)有限集的基数。

定义2-29 对于有限集img,根据等势关系,将与img等势的唯一的自然数称为M的基数,记作img(或cardM)。空集的基数记作0。

根据集合基数的定义,有限集的基数就是集合中所包含元素的个数。同理,按照等势集合的定义,凡是具有相同元素的有限集都具有相同的基数,也就是说当imgimg按照等势关系属于同一类时,imgimg就有相同的基数,即img

结论:单个元素构成的集合的基数为1,两个元素构成的集合的基数为2,以此类推,一个有限集的基数与自然数构成一一对应的关系。

(2)无限集的基数。

对于无限集,虽然没有具体的数值,但按照等势集合的定义,无限集也有基数。下面规定:

自然数集合img的基数称为阿列夫零img

实数集合的基数称为阿列夫。

3.可数集和不可数集

对于有限元素构成的集合,其元素个数为集合的基数。

对于无限集,一般无法数出集合元素的个数,这时可以通过等势关系所建立的“映射”来确定集合的基数。

定义2-30 将能够与自然数集合等势的任何集合称为可数集合,简称可数集。将既不是有限集,又不是可数集的集合称为不可数集。

可数集的基数记作img。如{1,2,3,4,…,n,…}{3,6,9,12,…,3n,…}{1,3,5,7,…,2n-1,…}都是可数集。

从上述定义和实例可以看出,可数集就是集合中的元素可以与自然数集合N的每个元素建立对应关系的集合,即可数集中的元素可以按照自然数的顺序排成类似于img的序列。

2.4.4 集合运算

1.集合的交集运算

定义2-31 对任意两个集合imgimg,将由这两个集合的共同元素组成的集合img称为imgimg的交集,记作img,如图2-3所示。

img
img

图2-3 AB的交集

例2-10 imgimg是由学校计算机系专业课程构成的集合,且img={‘高等数学’,‘英语’,‘数据结构’,‘Python编程’},img={‘C语言程序设计’,‘Java程序设计’,‘英语’,‘编译原理’,‘数据结构’},则img={‘英语’,‘数据结构’}。

在Python中,imgA.intersection(B)都表示AB的交集。

2.集合的并集运算

定义2-32 对于任意两个集合imgimg,将由所有属于A和属于B的元素组成的集合M称为imgimg的并集,记作img,如图2-4所示。

img
img

图2-4 AB的并集

例2-11 img={‘高等数学’,‘英语’,‘数据结构’,‘Python编程’},img={‘C语言程序设计’,‘Java程序设计’,‘英语’,‘编译原理’,‘数据结构’},则img={‘高等数学’,‘英语’,‘数据结构’,‘Python编程’,‘C语言程序设计’,‘Java程序设计’,‘编译原理’}。

在Python中,imgA.union(B)都表示imgimg的并集。

3.集合的补(差)集运算

定义2-33 imgimg为任意两个集合,将由所有属于img但不属于img的元素组成的集合M称为img关于img的相对补集,或称集合的差,记作img,如图2-5所示。

img
img

图2-5 B关于A的补集

若给定全集img,有img,则img中不属于img的所有元素组成的集合称为img的绝对补集,或简称补集,记作CUA

例2-12 img={‘高等数学’,‘英语’,‘数据结构’,‘Python编程’},img={‘C语言程序设计’,‘Java程序设计’,‘英语’,‘编译原理’,‘数据结构’},则img={‘高等数学’,‘Python编程’}。

在Python中,imgA.difference(B)都表示AB的差集。

4.集合的对称差运算

定义2-34 对于任意两个集合imgimg,将或属于img或属于img但不同时属于imgimg的元素构成的集合M称为对称差,记作img,如图2-6所示。

img
img

图2-6 AB的对称差

例2-13 img={‘高等数学’,‘英语’,‘数据结构’,‘Python编程’},img={‘C语言程序设计’,‘Java程序设计’,‘英语’,‘编译原理’,‘数据结构’},则img={‘高等数学’,‘Python编程’,‘C语言程序设计’,‘Java程序设计’,‘编译原理’}。

在Python中,imgA.symmetric_difference(B)都表示imgimg的对称差。

2.4.5 综合案例及应用

集合的运算可用于有限个元素的计数问题。

imgimg个有限集,集合的基数(集合包含元素的个数)分别用img来表示,则对于img个有限集img来说,有如下结论:

img

这个结论称为包含排斥原理。

例2-14 某学校计算机系的“双创”团队有20名学生,现要统计他们在某年度参加大赛的情况,大赛项目包括“网络大赛”“创新创业大赛”“云计算大赛”三大类;经过统计,在20名学生中,参加过“网络大赛”的有7名,参加过“创新创业大赛”的有8名,参加过“云计算大赛”的有5名,有3名学生同时参加过上述三类大赛,试求至少有多少名学生没参加过上述任何一项比赛,并计算参加大赛的学生所占的比例。

解:img={x|x参加过“网络大赛”},img={x|x参加过“创新创业大赛”},img={x|x参加过“云计算大赛”}。

由题意可知:imgimgimgimg

img

因为imgimgimg,所以img,即最多有14名学生参加过比赛,因此,至少有6名学生没参加过任何一项比赛。

利用Python程序实现上述实例的代码如下:

img

输出结果如下:

img