元素的无序性是集合的特征之一,元素的有序组合可以从集合来定义。
二元有序组(或称二元组、序偶):设 a , b a,b a,b 为任意对象,称集合族 { { a } , { a , b } } \{\{a\},\{a,b\}\} { { a},{ a,b}} 为二元有序组,简记为 < a , b > <a,b>。其中,称 a a a 为 < a , b > <a,b> 的第一分量, b b b 为第二分量。
定理:对于任意序偶 < a , b > , < c , d > ,
证明如下:
当 a ≠ b a\neq b a=b 时, < a , b > ≠ < b , a > \neq <a,b>=<b,a> ,但 { a , b } = { b , a } \{a,b\}=\{b,a\} { a,b}={ b,a} 。
有序组利用元素和集合的两个不同层次进行巧妙定义,实现了两个对象 a , b a,b a,b 的有序排列。
利用递归定义对 n 元有序组(n-tuple) < a 1 , . . . , a n >
n = 2 n=2 n=2 时, < a 1 , a 2 > = { { a 1 } , { a 1 , a 2 } }
n ≥ 2 n \geq 2 n≥2 时, < a 1 , . . . , a n > = < < a 1 , . . . , a n − 1 > , a n >
其中, a 1 a_1 a1 称为 n 元组的第 i 分量。
定理:对于任意 n 元组 < a 1 , . . . , a n > = < b 1 , . . . , a n >
对任意集合 A 1 , A 2 , . . . , A n A_1,A_2,...,A_n A1,A2,...,An , A 1 × A 2 A_1 \times A_2 A1×A2 称作集合 A 1 , A 2 A_1,A_2 A1,A2 的笛卡尔积,即为一个有序对的集合,定义如下:
n = 2 n=2 n=2 时, A 1 × A 2 = { < u , v > ∣ u ∈ A 1 , v ∈ A 2 } A_1 \times A_2 = \{|u \in A_1, v \in A_2\} A1×A2={ <u,v>∣u∈A1,v∈A2}
n ≥ 2 n \geq 2 n≥2 时, A 1 , A 2 , . . . , A n = ( A 1 × A 2 × . . . × A n − 1 ) × A n A_1,A_2,...,A_n = (A_1 \times A_2 \times ... \times A_{n-1}) \times A_n A1,A2,...,An=(A1×A2×...×An−1)×An
一般情况下, A × B ≠ B × A A \times B \neq B \times A A×B=B×A , A × ( B × C ) ≠ ( A × B ) × C A \times (B \times C) \neq (A \times B) \times C A×(B×C)=(A×B)×C ,即笛卡尔积运算不满足交换律和结合律。
笛卡尔积对集合运算的分配律:设 A , B , C A,B,C A,B,C 为任意集合,此处用 ⋅ \cdot ⋅ 表示 ∪ , ∩ , − \cup,\cap,- ∪,∩,− 运算,那么有 A × ( B ⋅ C ) = ( A × B ) ⋅ ( A × C ) A \times(B \cdot C) = (A\times B) \cdot (A\times C) A×(B⋅C)=(A×B)⋅(A×C) , ( B ⋅ C ) × A = ( B × A ) ⋅ ( C × A ) (B \cdot C) \times A = (B \times A) \cdot (C \times A) (B⋅C)×A=(B×A)⋅(C×A) 。
证明如下:
笛卡尔积的基数:对于任意有限集合 A 1 , . . . , A n A_1,...,A_n A1,...,An ,有 ∣ A 1 × . . . × A n ∣ = ∣ A 1 ∣ ∗ . . . ∗ ∣ A n ∣ |A_1 \times...\times A_n|=|A_1|*...*|A_n| ∣A1×...×An∣=∣A1∣∗...∗∣An∣ 。
关系是各个对象之间的联系和对应,最常见的是两组对象之间的联系和对应(比如“职员-部门”的隶属关系),也有三组或者更多对象之间的联系和对应(比如“供应商-工程-零件“的供应关系)。
采用二元组或多元组的集合来表示关系。
如果 R 是 A 1 × A 2 . . . × A n A_1 \times A_2...\times A_n A1×A2...×An 的一个子集,R 称为集合 A 1 , A 2 , . . . , A n − 1 A_1,A_2,...,A_{n-1} A1,A2,...,An−1 到 A n A_n An 的 n 元关系。当如果 R 是 A 1 = A 2 . . . = A n A_1 = A_2...= A_n A1=A2...=An 时,也称 R 为 A A A 上的 n 元关系。
如果 R 是 A × B A \times B A×B 的一个子集,R 称为集合 A A A 到 B B B 的 二元关系。当如果 R 是 A × A A \times A A×A 上的一个子集,也称 R 为 A A A 上的二元关系。(我们主要研究二元关系)
设 R 为 A 到 B 的二元关系( R ⊆ A × B R \subseteq A \times B R⊆A×B),xRy 表示 < x , y > ∈ R
R 的定义域(domain): D o m ( R ) = { x ∣ x ∈ A ⋀ ∃ y ( < x , y > ∈ R ) } Dom(R) = \{x|x\in A \bigwedge \exist y(
R 的值域(range): R a n ( R ) = { y ∣ y ∈ B ⋀ ∃ x ( < x , y > ∈ R ) } Ran(R) = \{y|y\in B \bigwedge \exist x(
同时,称 A 为 R 的前域,B 为 R 的陪域。
举一个例子,关系相等是指如果关系 R 和 S 具有相同的前域和陪域,并且 ∀ x ∀ y ( x R y → x S y ) \forall x \forall y(xRy \rightarrow xSy) ∀x∀y(xRy→xSy) 。
可以看出,参与关系运算的两个关系应该具有相同的前域和陪域。但这个条件不是本质的,因为总可以对关系的前域和陪域做适当的扩充,使之满足条件。我们接下来讨论的关系运算的关系默认前域和陪域相等。
关系逆运算: R ∼ = { < y , x > ∣ x R y } , R ⊆ A × B R\sim = \{
显然,R 的逆关系是 B 到 A 的关系, R ∼ = ⊆ B × A R\sim = \subseteq B \times A R∼=⊆B×A
逆关系关系矩阵,为 M R ∼ = M R T M_{R \sim} = M_R^T MR∼=MRT ,即原关系矩阵的转置。
逆运算的例子:
逆运算和并交差补等运算都满足分配律,从矩阵转置角度来看,表现为转置运算不会改变矩阵分量的值。
设 R , S ⊆ A × B R,S \subseteq A \times B R,S⊆A×B , ⋅ \cdot ⋅ 代表并交差运算之一,有以下性质:
设 R R R 为 A A A 到 B B B 的二元关系, S S S 为 B B B 到 C C C 的二元关系, R R R 和 S S S 的合成关系 R ∘ S R \circ S R∘S 定义为:
R ∘ S = { < x , z > ∣ x ∈ A ⋀ z ∈ C ⋀ ∃ y ( x R y ⋀ y S z ) } R \circ S = \{
R ∘ S ⊆ A × C R \circ S \subseteq A \times C R∘S⊆A×C 是 A 到 C 的二元关系。
由于参与合成的第一个关系的陪域要等于第二个关系的前域,所以合成关系不满足交换律。
关系的幂运算定义为自身的 n 次合成: R n = R ∘ . . . ∘ R R^n = R \circ...\circ R Rn=R∘...∘R
幂运算有以下性质:
幂关系有限定理:设集合 A 的基数为 n ,R 是 A 上的二元关系,则存在自然数 i,j 使得 0 ≤ i < j ≤ 2 n 2 0 \leq i < j \leq 2^{n^2} 0≤i<j≤2n2 ,有 R i = R j R_i = R_j Ri=Rj 。证明如下: