集合是不同對象(稱為成員)的無序聚集。
集合的兩個重要特點:一、成員是無序的;二,每個成員都只在集合中出現一次。
集合是離散數學中的重要部分,離散數學與計算機科學之間有着很深的淵源。
在計算機科學中,我們使用集合來歸類數據,尤其是當我們計划以后將其與其他數據相關聯時。
C語言並沒有原生支持集合,而是作為一種抽象數據類型來實現。
集合的定義
集合的符號:∪ ∩ ∈ ⊆ ⊂ ⊇ ⊃ ∨ ∧ ∞ Φ。
1、空集:沒有包含任何成員的集合。
全域:集合的所有可能成員(有時候比較難定義!)。
以集合的寫法可以表示為:
S=U 表示全域 S=Φ表示空集
2、集合相等:如果兩個集合中所包含的成員完全一樣,則稱這兩個集合相等。
例如,如果S1={1,2,3},S2={1,2,3},S3={1,2,4},則S1等於S2,但S1不等於S3。以集合的寫法表示為:
S1=S2 表示S1和S2相等;S1≠S3表示S1和S3不相等。
3、子集:如果集合S2包含另一個集合S1的所有成員,則S1是S2的子集。
例如,S1={1,3},S2={1,2,3},S3={1,2},則S1是S2的子集,但S1不是S3的子集。以集合的寫法表示為:
S1⊂S2表示S1是S2的子集;
集合的基本操作
1、兩個集合S1和S2的並集也是一個集合,記為Su ,它包含了S1和S2中的所有成員。
例如,如果集合S1={1,2,3},S2={3,4},則Su={1,2,3,4}。以集合的寫法表示為:
Su=S1∪S2。
2、兩個集合S1和S2的交集也是一個集合,記為Si ,它只包含同時存在於S1和S2中的成員。
例如,如果集合S1={1,2,3},S2={1,2},則Si={1,2}。以集合的寫法表示為:
Si=S1∩S2。
3、兩個集合的差集也是一個集合,記為Sd,它只包含在S1中出現過且不屬於S2的成員。
例如,如果集合S1={1,2,3},S2={3,4},則Sd={1,2}。以集合的寫法表示為:
Sd=S1-S2。
集合的性質
1、某個集合與空集的交集結果一定是空集。某個集合與空集的並集結果還是原來的集合本身。
這些行為由 集合的空集律 表示為:
S∩Φ=Φ
S∪Φ=S
2、與集合本身求交集結果還是集合本身。同樣的,與集合本身求並集結果也還是集合本身。
這種行為由 集合的冪等律 描述為:
S∩S=S
S∪S=S
3、集合S1與集合S2的交集其結果等同於集合S2與集合S1的交集。同樣的道理也適用於並集的情況。
這種行為由 集合的交換律 描述為:
S1∩S2 = S2∩S1
S1∪S2 = S2∪S1
4、一組集合的交集可以按照任意順序來求解。同樣的道理也適用於並集的情況。
這種行為由 集合的結合律 表示為:
S1∩(S2∩S3) = (S1∩S2)∩S3
S1∪(S2∪S3) = (S1∪S2)∪S3
5、某集合與其他兩個集合的並集相交的結果可以按照一種分配的方式來解決。同樣的道理也適用於求解某集合與其他兩個集合的交集相合並的情況。
這種行為由 集合的分配律 描述為:
S1∪(S2∩S3) = (S1∩S2)∪(S1∩S3)
S1∪(S2∪S3) = (S1∪S2)∪S3
6、某集合與該集合和另一個集合的並集相交結果等於該集合本身。同樣的道理也適用於求解某集合與該集合和另一個集合的交集相合並的結果。
這種行為由 集合的合並律 描述為:
S1∩(S1∪S2) = S1
S1∪(S1∩S2) = S1
7、求解一個集合與其他兩個集合的交集或並集之差(德摩根定律):
S1 - (S2 ∪ S3) = (S1 - S2) ∩ (S1 - S3)
S1 - (S2 ∩ S3) = (S1 - S2) ∪ (S1 - S3)