购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

第5章
集合

集合 (set)是相互可区分的对象的汇集,这些对象被称为该集合的 成员 (member)。在第1章我们已经给出了集合的定义,本章将重温集合的概念。例如,一个集合可以由三个数字2、5和7构成,用花括号来表示。集合仅含有2、5和7,记为{2,5,7}。集合的成员本身也可以是一个集合。例如,集合{{2,5,7}}仅包含一个成员,这个成员就是集合{2,5,7}。前面提到的两个集合是不相同的,即

{2,5,7}≠{{2,5,7}}

第一个集合有三个成员,第二个集合有一个成员。它们与集合{{2},{5},{7}}又不相同,后者有三个成员,每个成员本身又是一个集合,即只包含一个成员的集合。

当我们说集合的成员是相互 可区分 (distinct)时,是指集合中没有重复的对象。例如,如果五名学生参加考试,获得的分数分别为83、90、90、100和100,那么这五名学生考试分数的集合就是{83,90,100} ;集合中成员之间的顺序无关,即集合{90,100,83}与集合{83,90,100}相等,因为它们具有相同的成员。

下面介绍一些常用的集合,它们有专门的名称:

ℤ={…,-3,-2,-1,0,1,2,3,…}=整数的集合

ℕ={0,1,2,3,…}=非负整数的集合,也是 自然数 (natural number)的集合

ℝ= 实数 (real number)的集合

ℚ= 有理数 (rational number)的集合

∅={}= 空集 (empty set),即不包含任何元素的集合

一个集合的 子集 (subset)是由该集合中抽取出来的元素(可以不是全部元素)构成的集合。例如,ℕ是ℤ的子集,ℤ是ℚ的子集,而空集∅是任意集合的子集。我们用 A B 表示 A B 的子集( A 也可能等于 B )。如果我们要定义 A B 的一个子集但不等于 B 时,记作 。如果 ,则称 A B 真子集 (propersubset)。(有时也用⊂表示,因为⊂既像 又像 ,会导致意义不清晰,所以近来的数学记法中避免使用。)

计算机科学家们将集合和数字(整数和实数)定义为基本 数据类型 (data type)。然而,从基础数学的观点来看,如果我们能够构造集合,就没有必要将数字视为基本数据类型,因为数字可以用集合来定义,计算机科学家们称之为编码技巧。一旦有更复杂的归纳定义和证明技术,我们便可以探讨这些编码了(见习题8.7)。

如果 A B 的子集,则 B 称为 A 超集 (superset)。如果 A B 的真子集,则 B 称为 A 真超集 (proper superset)。

前面说过,集合的成员也可以是集合。一个很重要的例子就是集合 A 幂集 (power set),我们用 P A )来表示,它是 A 的所有子集的集合。例如,当 A ={3,17}时,有

P A )={∅,{3},{17},{3,17}}

我们使用符号∈表示集合与成员的关系。例如, a S 表示 a 是集合 S 的成员,并且下述命题

2∈{2,5,7} 为真

3∈{2,5,7} 为假

类似地,有ℤ∈ P (ℚ),因为所有整数的集合是有理数集合的子集。符号∉表示给定的元素不在给定的集合中,例如,3∉{2,5,7}。空集是唯一没有元素的集合,即不存在 x ,使得 x ∈∅。

下列情况不能被混淆。

• 1和{1}:1是一个数字,而{1}是一个只包含一个对象的集合,即数字1。

• 0和∅:0是一个数字,而∅是一个特别的集合,即空集。{∅}是不同于前两者的第三种事物,即只包含一个元素的集合,其元素是空集∅。

• ∈和⊆:1∈{1,2},因为1是{1,2}中的元素之一。但是,1⊆{1,2}不为真,1不是集合,因此就不能是子集。(计算机科学家们会说1⊆{1,2}是类型匹配错误,因为⊆两边的实体必须是集合。)此外,有{1}⊆{1,2},并且 ,但是{1}∉{1,2},因为{1,2}的元素不是集合而是数字

一个集合可以是 有限的 有穷的 (finite)也可以是 无限的 无穷的 (infinite)。如果它的成员数等于某个非负整数,那么它是有限的。例如,∅有0个成员,所以它是有限的;如果 A ={3,17},那么 P A )={∅,{3},{17},{3,17}}有4个成员,因此它也是有限的。计算 P A )时,要记住它是一个集合的集合,而不是数字的集合,所以我们要计算它所包含的集合数,而不是这些集合中的数字数。

我们用| S |表示集合 S 的大小,称之为 S 基数 (cardinality)。因此,有|∅|=0。如果 A ={3,17},那么| A |=2,| P (A)|=|{∅,{3},{17},{3,17}}|=4。

整数集合是无限的,所有偶数的集合{…,-4,-2,0,2,4,…}也是无限的。可以充分地说明,任意集合不是有限的就是无限的。对于两个无限集合来说,可以是相同大小的,也可以是不同大小的。例如,整数集合和偶数集合,它们是不相同的无限集合,却具有相同的大小。也存在大小不同的无限集合,例如,整数集合和实数集合。我们将在第6章再回到无限集合大小问题的讨论。

|{ℤ}|是什么?像 P A )一样,这是一个由集合构成的集合,所以我们不在意内部集合的大小,即使它们是无限的。所以|{ℤ}|=1,因为{ℤ}只包含单个对象ℤ,而不考虑ℤ是否是一个无穷集。

有时我们需要更规范的方式表示“整数”或“有理数”。不像前面那样,以列出成员样例的方式来表示“偶数”的集合,我们使用下面的表示法 [1]

{ n n 是偶数}

或者等价地表示为

{ n n =2 m m }

又或者表示为

{2 m m }

一般来说, A 中满足谓词 P 的元素的集合表示为

{ x A : P ( x )}

P x )的另一种解释是: x 具有性质 P

用现有的集合构建新的集合有多种方法。当有两个集合 A B 时,我们可以得到它们的 并集 (union),即包含在 A B 中的元素构成的集合,以及它们的交集(intersection),即既在 A 中又在 B 中的元素构成的集合。这些概念通常使用 文氏图 (Venn diagram)来说明,如图5.1~图5.3所示,图中展示了两个有重叠的集合 A B ,以及它们的并集和交集。

图5.1 集合 A B 重叠

图5.2 图5.1中集合 A B 的并集和交集

图5.3 A B 之间的差表示为 A - B B - A

A B 的并集记为

A B ={ x : x A x B }

A B 的交集记为

A B ={ x : x A x B }

像数字的加法和乘法一样,集合的“并”和“交”也具有 可结合 (associative)性,即

A B )∪ C = A ∪( B C

对于任意的集合 A B C ,同样地,有

A B )∩ C = A ∩( B C

我们将在第9章再回到这个主题,此刻只要注意到“或”和“且”在自然语言中是可结合的就足够了。例如,“你是17岁以上的女性,并且还是美国人”与“你是17岁以上,并且是女性美国人”是完全一样的。构造“17岁以上的人”、“女性”和“美国人”三个集合,通过“先对前两个集合取交集,然后再与第三个集合取交集”和“先对后两个集合取交集,然后再与第一个集合取交集”,两种方式都可以获得三个集合的交集。类似地,集合的并和交的运算都是可 交换的 (commutative),即对于任意的集合 A B ,有 A B = B A A B = B A 成立。

我们还可以求集合的 补集 (complement),表示为 。全集 U (universe)可以是任何可能事物 x 的集合, x 没有确切的定义,它的意义是由上下文决定的,但是意义并不模糊。如果 B ={ x U P x )},那么我们可以得到 。例如,如果 B ={星期六,星期天},那么假设“星期三” 是没有问题的,但“一月” 可以吗?这完全取决于 U 是“星期几的集合”,还是“自然语言中所有单词的集合”,或者其他的集合含义。

当我们有了补集的概念,便可以做 A B (difference),即在 A 中而不在 B 中的元素,表示为:

图5.3展示了图5.1中的集合 A B A - B B-A 。这两个表达式意义完全不同,在示例中,两者都不为空。一般来说,有

A B =( A - B )∪( B - A )∪( A B

也就是说, A B 是两个集合之差(两边的部分)的并集,再与集合交集(中间“缺失部分”)的并。

集合差 A - B 有时也表示为 A \ B

集合的并和交运算满足分配律,类似于算术运算中加法和乘法的分配律,即 a ·( b + c )= a · b + a · c 。这里有一个重要的区别:集合的并和交运算的分配律是对称的。

定理5.1 分配律。

A ∩( B C )=( A B )∪( A C

A ∪( B C )=( A B )∩( A C

我们只证明第一个等式,第二个等式留作习题5.2。

证明 :考虑任意元素 x ,首先假设 x A ∩( B C )。

根据∩和∪的定义,可以得到:

(a) x 是集合 A 的成员。

(b)(b1) x 是集合 B 的成员。

(b2) x 是集合 C 的成员。

当(b1)为真时, x A B 的成员;当(b2)为真时, x A C 的成员,即 x ∈( A B )∪( A C )。

现在假设 x ∈( A B )∪( A C )。我们可以按照上述相同的推理过程反向推理。无论 x ∈( A B )还是 x ∈( A C ), x 都是 A 的成员,并且也必须是 B C 的成员,即 x A ∩( B C )。■

上述论证过程在集合及其∪、∩运算的规律与命题及其连接词“或”和“且”的推理之间交替进行。形式化“复合命题的真值取决于组成该命题的原子命题的真值”的推理过程是 命题演算 的主要内容,也是第9章的主题。事实上,集合运算具有与命题逻辑中同样的结合律、交换律和分配律(见第9章)。

并和交运算的符号∪和∩如同扩展和与扩展积的符号Σ和Π一样。例如,ℕ是所有具有一个元素的集合{ n }的并集,即对于任意的 n ∈ℕ,ℕ可以表示为

集合 S 是全集 U (除了不在 S 中的单个元素之外的所有事物)的所有子集的交集,则 S 表示为

有序对 (ordered pair)〈 x , y 〉是一种数学结构,它将 元素 (component) x y 组合成一个顺序结构。也就是说,〈 x , y 〉不同于〈 y , x 〉,除非 x y 相同。总之,只有在 x = z y = w 的情况下,才有〈 x , y 〉=〈 z , w 〉。

x , y 〉也不同于{ x , y }({ x , y }与{ y , x }是相同的)。我们将把有序对〈 x , y 〉视为不同于集合的另一种基本数据类型。

事实上,可以用集合来定义有序对,如同可以用集合来定义数字一样。数学的纯粹主义者和基本教义派有时会将有序对〈 x , y 〉定义为{ x ,{ x , y }},他们认为,基本概念尽可能地少是很重要的。根据这种定义,有序对具有如下基本性质,即两个有序对是相等的当且仅当它们中的第一、第二个元素分别对应相等(见习题5.11)。

有序对的概念可以扩展到有序三元组。我们用〈 x , y , z 〉表示由三个元素 x y z 构成的有序三元组。一般地,我们统称为 有序 n 元组 (ordered n-tuple),其中 n 是非负整数,表示有 n 个元素的序列。两个有序 n 元组是相等的,当且仅当对于每个 i ,它们的第 i 个元素都是相等的,1≤ i n

由第一元素来自集合 A 和第二元素来自集合 B 的所有有序对构成的集合称为 A B 笛卡儿积 (Cartesian product)或 叉积 (cross product),表示为 A × B 。例如,如果 A ={1,2,3}, B ={-1,-2},则

A × B ={〈1,-1〉,〈1,-2〉,〈2,-1〉,〈2,-2〉,〈3,-1〉,〈3,-2〉}

很明显, A × B 通常不同于 B × A 。如果 A B 都是有穷集,那么有| A × B |=| A |·| B |。在上面的例子中,有| A |=3、| B |=2,且| A × B |=6。我们也可以构造无穷集的笛卡儿积,如ℕ×ℤ是所有整数的有序对集合,其中第一个元素是非负的整数,有

{1,2,3}×{-1,-2}⊆ ×ℤ

本章小结

集合 可区分 的事物或 元素 的无序汇集。集合的元素称为 成员

空集 是不包含任何对象的集合,表示为∅或者{}。

• 某些数字的集合有特定的名称,如整数ℤ、自然数ℕ、实数ℝ和有理数ℚ。

• 集合的 子集 是由集合的某些成员(可能一个也没有或者也可能包括全部)组成的集合。

A B 表示 A B 的子集( A 也可能等于 B )。 A B 表示 A B 子集(绝对不等于 B )。

• 如果 A B 的(真)子集,那么 B A 的(真)超集。

• 符号∈表示集合成员,它的否定用符号∉表示。

• 一个集合本身可以成为另一个集合中的元素。区分一个对象是元素还是集合是很重要的。成员符号用于表明元素与集合的关系,而子集符号用于表明两个集合之间的关系,即一个集合的所有元素都是另一个集合的成员。

• 集合 S 幂集 表示为 P ( S ),是 S 的所有子集的集合。

• 集合 S 的大小也称为 S 的基数,表示为| S |。大小是非负整数的集合为有穷集,否则为无穷集。

• 集合 S 的补集表示为 ,是有关的 全集 中不在中的所有元素的集合。

• 可以通过求集合的并(∪)、交(∩)以及差(-或者\)得到新的集合。

• 集合的并和交的运算满足结合律、交换律和分配定律:

有序对 由两个元素按顺序构成。以 x 为第一元素、以 y 为第二元素的有序对表示为〈 x , y 〉。 有序 n 元组 是该定义对于 n 个元素的扩展。

• 由第一元素来自集合 A 、第二元素来自集合 B 的所有有序对构成的集合称为 A B 笛卡儿积 叉积 ,表示为 A × B

习题

5.1 下面是什么集合?列出它们的成员。

(a){{2,4,6}∪{6,4}}∩{4,6,8}

(b) P ({7,8,9})- P ({7,9})

(c) P (∅)

(d){1,3,5}×{∅}

(e){2,4,6}×{∅}

(f) P ({0})× P ({1})

(g) P P ({2}))

5.2 证明分配定律的第二个等式:

A ∪( B C )=( A B )∩( A C

5.3 证明:如果 A 是有穷集,并且| A |= n ,那么有| P ( A )|=2 | A |

5.4 如果| A |= n ,那么| P ( A )-{{ x }: x A }|是什么?

5.5 (a)假设 A B 都是有穷集。比较| P A × B )|与| P A )|·| P B )|的数量关系。在什么情况下,其中一个会比另一个大,它们的比是多少?

(b)( A - B )∩( B - A )=∅ 一定为真吗?证明或者给出反例。

5.6 用形式化集合表示法表示下列集合。

(a)无理数集合。

(b)能被3或5整除的所有整数的集合。

(c)集合 X 的幂集。

(d)三位数的集合。

5.7 确定下述命题的真假,并说明原因。

(a)∅={∅}

(b)∅={0}

(c)|∅|=0

(d)| P |(∅)=0

(e)∅ ∈{}

(f)∅={ x x ≤0并且 x >0}

5.8 证明:如果 A B C D 都是有穷集,并且有 A B C D ,那么 A × C B × D

5.9 证明下列各式:

(a) A ∩( A B )= A

(b) A -( B C )=( A - B )∪( A - C

5.10 有100名学生和三门课程,每名学生至少需要注册一门课程。在这些学生中,有60人注册了化学课,有45人注册了物理课,有30人注册了生物课。有些学生注册了两门课程,有10名学生注册了三门课程。

(a)有多少学生刚好注册了两门课程?

(b)有9名学生同时注册了化学和物理(没有注册生物),有4名学生同时注册了物理和生物(没有注册化学)。有多少人同时注册了化学和生物(没有注册物理)?

5.11 假设有序对不作为基础数据类型,将〈 x , y 〉定义为{ x ,{ x , y }}。证明:〈 x , y 〉=〈 u , v 〉当且仅当 x = u y = v


[1] 在数学记法中,竖线|通常用于代替冒号“:”,例如 我们更喜欢用冒号,因为竖线还用于表示集合的大小。 zmWy5f+wRwx45DfB5oC0lRL4HD6QsnmkFfw5nExujssE0+3MoKaEP/ZbC6ZtaSOJ

点击中间区域
呼出菜单
上一章
目录
下一章
×

打开