基本介紹
- 中文名:多元組
- 外文名:n元組
多元組的名稱,形式定義,套用,
多元組的名稱
形式定義
(a1, a2, ...,an) = (b1, b2, ..., bn) 若且唯若 a1 = b1, a2 = b2 等等。另一種形式化多元組的方式是將它們映射到集合論中更基本的結構諸如有序對。例如,一個 n 元組(n > 2)能夠定義成其第一項和由其他項組成的 (n−1) 元組組成的有序對:
(a1, a2, ..., an) = (a1, (a2, ..., an))採用通常的有序對的集合論定義,並用空集來表示 0 元組,就可以得到下列歸納定義:
0 元組用 ∅ 表示;若 x 是 n 元組(a1, a2, ..., an),則(n + 1) 元組(a,a1, a2, ..., an)等同於{{a}, {a, x}} 。(n≥0)採用這個定義,(1,2,2) 為
(1,(2,(2))) = (1,(2, {{2}, {2, ∅}} )) = (1, {{2}, {2, {{2}, {2, ∅}}}} ) = {{1}, {1, {{2}, {2, {{2}, {2, ∅}}}}}}這裡與LISP最初使用有序對歸納地產生其所有的 n 元組和表結構的方法有非常重要的類似:
特殊符號 NIL 表示空表;若 X 是一個表,A 是任意值,則對 (A, X) 表示一個表,其頭(第一個元素)為 A,其尾(表中除了第一個元素的其他元素)為 X。
套用
在計算機科學(特別是在程式設計語言和資料庫的關係模型)中,多元組通常被定義為從欄位名到特定值的有限函式。其目的和在數學中一樣,指出特定的實體或對象包含特定的部分且(或)具有特定的性質。但是,這裡的部分通過唯一的欄位名來識別,而不是通過位置,從而得到更多用戶友好的表示。
多元組的一個例子:
( 選手 : "Harry", 成績 : 25 )就是一個映射欄位名“選手”到字元串 "Harry",映射欄位名“成績”到數 25 的函式。注意,這裡各個部分的順序互不相關,所以相同的多元組也可以寫成:
( 成績 : 25, 選手 : "Harry" )在關係模型中,這樣的多元組是表示一個簡單命題的典型。這個例子的意思就是有一個選手的名字叫 "Harry",他的成績是 25。
在程式設計語言中,多元組被用來構建數據結構。例如,下列多元組可以表示雙向鍊表中的一個節點:
( 值 : 16, 前驅節點 : 1174782, 後繼節點 : 1174791 )