官术网_书友最值得收藏!

第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}[1];集合中成員之間的順序無關,即集合{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表示AB的子集(A也可能等于B)。如果我們要定義AB的一個子集但不等于B時,記作。如果,則稱AB真子集(propersubset)。(有時也用?表示,因為?既像又像,會導致意義不清晰,所以近來的數學記法中避免使用。)

計算機科學家們將集合和數字(整數和實數)定義為基本數據類型(data type)。然而,從基礎數學的觀點來看,如果我們能夠構造集合,就沒有必要將數字視為基本數據類型,因為數字可以用集合來定義,計算機科學家們稱之為編碼技巧。一旦有更復雜的歸納定義和證明技術,我們便可以探討這些編碼了(見習題8.7)。

如果AB的子集,則B稱為A超集(superset)。如果AB的真子集,則B稱為A真超集(proper superset)。

前面說過,集合的成員也可以是集合。一個很重要的例子就是集合A冪集(power set),我們用PA)來表示,它是A的所有子集的集合。例如,當A={3,17}時,有

PA)={?,{3},{17},{3,17}}

我們使用符號∈表示集合與成員的關系。例如,aS表示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}的元素不是集合而是數字[2]

一個集合可以是有限的有窮的(finite)也可以是無限的無窮的(infinite)。如果它的成員數等于某個非負整數,那么它是有限的。例如,?有0個成員,所以它是有限的;如果A={3,17},那么PA)={?,{3},{17},{3,17}}有4個成員,因此它也是有限的。計算PA)時,要記住它是一個集合的集合,而不是數字的集合,所以我們要計算它所包含的集合數,而不是這些集合中的數字數。

我們用|S|表示集合S的大小,稱之為S基數(cardinality)。因此,有|?|=0。如果A={3,17},那么|A|=2,|P(A)|=|{?,{3},{17},{3,17}}|=4。

整數集合是無限的,所有偶數的集合{…,-4,-2,0,2,4,…}也是無限的。可以充分地說明,任意集合不是有限的就是無限的。對于兩個無限集合來說,可以是相同大小的,也可以是不同大小的。例如,整數集合和偶數集合,它們是不相同的無限集合,卻具有相同的大小。也存在大小不同的無限集合,例如,整數集合和實數集合。我們將在第6章再回到無限集合大小問題的討論。

|{?}|是什么?像PA)一樣,這是一個由集合構成的集合,所以我們不在意內部集合的大小,即使它們是無限的。所以|{?}|=1,因為{?}只包含單個對象?,而不考慮?是否是一個無窮集。

有時我們需要更規范的方式表示“整數”或“有理數”。不像前面那樣,以列出成員樣例的方式來表示“偶數”的集合,我們使用下面的表示法[3]

{n?n是偶數}

或者等價地表示為

{n?n=2mm?}

又或者表示為

{2mm?}

一般來說,A中滿足謂詞P的元素的集合表示為

{xA:P(x)}

Px)的另一種解釋是:x具有性質P

用現有的集合構建新的集合有多種方法。當有兩個集合AB時,我們可以得到它們的并集(union),即包含在AB中的元素構成的集合,以及它們的交集(intersection),即既在A中又在B中的元素構成的集合。這些概念通常使用文氏圖(Venn diagram)來說明,如圖5.1~圖5.3所示,圖中展示了兩個有重疊的集合AB,以及它們的并集和交集。

圖5.1 集合AB重疊

圖5.2 圖5.1中集合AB的并集和交集

圖5.3 AB之間的差表示為A-BB-A

AB的并集記為

AB={x:xAxB}

AB的交集記為

AB={x:xAxB}

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

AB)∪C=A∪(BC

對于任意的集合ABC,同樣地,有

AB)∩C=A∩(BC

我們將在第9章再回到這個主題,此刻只要注意到“或”和“且”在自然語言中是可結合的就足夠了。例如,“你是17歲以上的女性,并且還是美國人”與“你是17歲以上,并且是女性美國人”是完全一樣的。構造“17歲以上的人”、“女性”和“美國人”三個集合,通過“先對前兩個集合取交集,然后再與第三個集合取交集”和“先對后兩個集合取交集,然后再與第一個集合取交集”,兩種方式都可以獲得三個集合的交集。類似地,集合的并和交的運算都是可交換的(commutative),即對于任意的集合AB,有AB=BAAB=BA成立。

我們還可以求集合的補集(complement),表示為。全集U(universe)可以是任何可能事物x的集合,x沒有確切的定義,它的意義是由上下文決定的,但是意義并不模糊。如果B={xUPx)},那么我們可以得到。例如,如果B={星期六,星期天},那么假設“星期三”是沒有問題的,但“一月”可以嗎?這完全取決于U是“星期幾的集合”,還是“自然語言中所有單詞的集合”,或者其他的集合含義。

當我們有了補集的概念,便可以做AB(difference),即在A中而不在B中的元素,表示為:

圖5.3展示了圖5.1中的集合ABA-BB-A。這兩個表達式意義完全不同,在示例中,兩者都不為空。一般來說,有

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

也就是說,AB是兩個集合之差(兩邊的部分)的并集,再與集合交集(中間“缺失部分”)的并。

集合差A-B有時也表示為A\B

集合的并和交運算滿足分配律,類似于算術運算中加法和乘法的分配律,即a·(b+c)=a·b+a·c。這里有一個重要的區別:集合的并和交運算的分配律是對稱的。

定理5.1 分配律。

A∩(BC)=(AB)∪(AC

A∪(BC)=(AB)∩(AC

我們只證明第一個等式,第二個等式留作習題5.2。

證明:考慮任意元素x,首先假設xA∩(BC)。

根據∩和∪的定義,可以得到:

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

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

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

當(b1)為真時,xAB的成員;當(b2)為真時,xAC的成員,即x∈(AB)∪(AC)。

現在假設x∈(AB)∪(AC)。我們可以按照上述相同的推理過程反向推理。無論x∈(AB)還是x∈(AC),x都是A的成員,并且也必須是BC的成員,即xA∩(BC)。■

上述論證過程在集合及其∪、∩運算的規律與命題及其連接詞“或”和“且”的推理之間交替進行。形式化“復合命題的真值取決于組成該命題的原子命題的真值”的推理過程是命題演算的主要內容,也是第9章的主題。事實上,集合運算具有與命題邏輯中同樣的結合律、交換律和分配律(見第9章)。

并和交運算的符號∪和∩如同擴展和與擴展積的符號Σ和Π一樣。例如,?是所有具有一個元素的集合{n}的并集,即對于任意的n∈?,?可以表示為

集合S是全集U(除了不在S中的單個元素之外的所有事物)的所有子集的交集,則S表示為

有序對(ordered pair)〈x,y〉是一種數學結構,它將元素(component)xy組合成一個順序結構。也就是說,〈x,y〉不同于〈y,x〉,除非xy相同。總之,只有在x=zy=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〉表示由三個元素xyz構成的有序三元組。一般地,我們統稱為有序n元組(ordered n-tuple),其中n是非負整數,表示有n個元素的序列。兩個有序n元組是相等的,當且僅當對于每個i,它們的第i個元素都是相等的,1≤in

由第一元素來自集合A和第二元素來自集合B的所有有序對構成的集合稱為AB笛卡兒積(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。如果AB都是有窮集,那么有|A×B|=|A|·|B|。在上面的例子中,有|A|=3、|B|=2,且|A×B|=6。我們也可以構造無窮集的笛卡兒積,如?×?是所有整數的有序對集合,其中第一個元素是非負的整數,有

{1,2,3}×{-1,-2}??×?

主站蜘蛛池模板: 滨州市| 张掖市| 于田县| 富民县| 固安县| 神农架林区| 罗源县| 璧山县| 宁强县| 葫芦岛市| 巴青县| 汶上县| 上栗县| 石泉县| 泊头市| 天台县| 公安县| 台山市| 潜江市| 丰顺县| 广宁县| 乐清市| 南京市| 台东市| 呈贡县| 肥东县| 连山| 都昌县| 曲阳县| 海晏县| 沂源县| 杭锦旗| 都江堰市| 南靖县| 泾阳县| 二连浩特市| 安塞县| 高碑店市| 肇庆市| 阿拉尔市| 长垣县|