Tuple
수학에서, 튜플(tuple)은 원소(elements)의 유한한 순서화된 목록 (수열)입니다. n-튜플(n-tuple)은, n은 비-음의 정수인, n 원소의 수열 (또는 순서화된 목록)입니다. 그것이 참조되는 것처럼, 오직 하나의 0-튜플, 빈 수열, 또는 빈 튜플이 있습니다. n-튜플은 순서쌍(ordered pair)의 구성을 사용하여 귀납적으로 정의(defined inductively)됩니다.
수학자들은 괄호 "" 안에 쉼표로 구분된 원소를 나열하여 튜플을 보통 작성합니다; 예를 들어 은 5-튜플을 나타냅니다. 때때로 "[ ]" 또는 꺾쇠 괄호 "< >"와 같은, 다른 기호가 원소를 둘러싸기 위해서 사용됩니다. 중괄호 "{ }"는 자바(Java) 및 비주얼 베이직과 같은 일부 프로그래밍 언어에서는 배열을 정의하는 것에만 오직 사용되지만, 집합(sets)에 대한 표준 표기법으로써, 수학적 표현에는 사용하지 않습니다. 용어 튜플(tuple)은, 벡터(vectors)와 같은, 다른 수학적 대상을 논의하는 것에 종종 발생할 수 있습니다.
컴퓨터 과학에서, 튜플은 여러 형태로 제공됩니다. Lisp와 같은, 동적으로 유형화된 언어(dynamically typed languages)에서는, 목록이 튜플로써 공통적으로 사용됩니다.[citation needed] 대부분의 형식화된 (functional programming languages)는 튜플을 곱 유형(product type)으로 직접적으로 구현하며,[1] 대수적 데이터 유형(algebraic data types), 패턴 일치(pattern matching) 및 소멸 할당과 밀접하게 연관됩니다.[2] 많은 프로그래밍 언어가, 레이블에 의해 접근하는 비-순서화된 원소를 특색을 이루는, 레코드 유형(record types)으로써 알려진, 튜플에 대한 대안을 제공합니다.[3] 몇 개의 프로그래밍 언어는, C 구조체(C structs)와 하스켈 레코드에서와 같은, 순서화된 튜플 곱 유형과 비-순서화된 레코드 유형을 단일 구조로 결합합니다. 관계형 데이터베이스(Relational database)는 행(row) (레코드)을 튜플로써 공식적으로 식별할 수 있습니다.
튜플은 관계 대수(relational algebra)에서 역시 발생합니다; 자원 기술 프레임워크(Resource Description Framework, RDF)로 시맨틱 웹(semantic web)을 프로그래밍 할 때; 언어학(linguistics)에서;[4] 그리고 철학(philosophy)에서.[5]
Etymology
이 용어는 single, couple/double, triple, quadruple, quintuple, sextuple, septuple, octuple, ..., n‑튜플, ...과 같은 수열의 추상화로 기원되었으며, 여기서 접두사는 숫자-표시의 라틴어(Latin) 이름에서 가져옵니다. 고유한 0-튜플은 영 튜플 또는 빈 튜플이라고 합니다. 1-튜플은 싱글 (또는 싱글톤)이라고 하고, 2-튜플은 순서쌍 또는 커플이라고 하고, 3-튜플은 트리플 (또는 트리플렛)이라고 합니다. 숫자 n은 임의의 비-음의 정수(integer)일 수 있습니다. 예를 들어, 복소수(complex number)는 실수의 2-튜플, 쿼터니언(quaternion)은 4-튜플로, 옥토니언(octonion)은 8-튜플로, 세데니온(sedenion)은 16-튜플로 표현될 수 있습니다.
비록 이들 사용은 ‑uple을 접미사로 취급하지만, 원래 접미사는 "triple" (세-겹) 또는 "decuple" (열-겹)에서와 같이 ‑ple였습니다. 이것은 "duplex"에서와 같이 고전 및 후기 고대의 ‑plex("folded"을 의미)를 대체했던 그리스어(Greek) ‑πλοῦς와 관련된 중세 라틴어 plus ("more"를 의미)에서 유래합니다.[6][a]
Names for tuples of specific lengths
Tuple length, | Name | Alternative names |
---|---|---|
0 | empty tuple | null tuple / empty sequence / unit |
1 | monuple | single / singleton / monad |
2 | couple | double / ordered pair / two-ple / twin / dual / duad / dyad / twosome |
3 | triple | treble / triplet / triad / ordered triple / threesome |
4 | quadruple | quad / tetrad / quartet / quadruplet |
5 | quintuple | pentuple / quint / pentad |
6 | sextuple | hextuple / hexad |
7 | septuple | heptuple / heptad |
8 | octuple | octa / octet / octad / octuplet |
9 | nonuple | nonad / ennead |
10 | decuple | decad / decade (antiquated) |
11 | undecuple | hendecuple / hendecad |
12 | duodecuple | dozen / duodecad |
13 | tredecuple | baker's dozen |
14 | quattuordecuple | |
15 | quindecuple | |
16 | sexdecuple | |
17 | septendecuple | |
18 | octodecuple | |
19 | novemdecuple | |
20 | vigintuple | |
21 | unvigintuple | |
22 | duovigintuple | |
23 | trevigintuple | |
24 | quattuorvigintuple | |
25 | quinvigintuple | |
26 | sexvigintuple | |
27 | septenvigintuple | |
28 | octovigintuple | |
29 | novemvigintuple | |
30 | trigintuple | |
31 | untrigintuple | |
32 | duotrigintuple | |
40 | quadragintuple | |
41 | unquadragintuple | |
50 | quinquagintuple | |
60 | sexagintuple | |
70 | septuagintuple | |
80 | octogintuple | |
90 | nongentuple | |
100 | centuple | |
1,000 | milluple | chiliad |
에 대해, 위 테이블에서 튜플 이름은 "to multiply [the direct object] by "를 의미하는 동사로도 사용할 수 있음을 주목하십시오; 예를 들어 "to quintuple"는 "to multiply by 5"를 의미합니다. 만약 이면, 결합된 동사는 "to double"입니다. 역시 "to multiple by 3/2"를 의미하는 동사 "sesquiple"가 있습니다. 이론적으로, "monuple"도 이런 방법으로 사용될 수 있습니다.
Properties
둘의 n-튜플의 항등식에 대해 일반적인 규칙은 다음입니다:
따라서 튜플은 집합(set)으로부터 그것을 구별하는 속성을 가집니다:
- 튜플은 같은 원소를 여러 인스턴스를 포함할 수 있으므로, 따라서
튜플은 이지만; 집합은 입니다.
- 튜플 원소는 순서화되었습니다: 튜플은 이지만, 집합은 입니다.
- 튜플은 원소의 유한 개수를 가지고, 반면에 집합 또는 중복집합(multiset)은 원소의 무한 개수를 가질 수 있습니다.
Definitions
이전 섹션에서 설명된 속성을 튜플에 제공하는 그것의 여러 정의가 있습니다.
Tuples as functions
-튜플은 빈 함수(empty function)로 식별될 수 있습니다. 에 대해, -튜플 은 다음 (전사(surjective)) 함수(function)로 식별될 수 있습니다:
이때, 함수의 도메인(domain)은 다음이고
함수의 코도메인(codomain)은 다음이며,
다음에 의해 에 의해 정의됩니다:
즉, 는 다음에 의해 정의된 함수입니다:
이 경우에서 다음 상등은 반드시 유지됩니다:
- .
- Tuples as sets of ordered pairs
함수는 공통적으로 순서쌍의 특정 집합인 그래프(graphs)로 식별됩니다. 실제로, 많은 저자들이 그래프를 함수의 정의로 사용합니다. "함수"의 이 정의를 사용하여, 위의 함수 는 다음과 같이 정의될 수 있습니다:
Tuples as nested ordered pairs
집합 이론에서 튜플을 모델링하는 또 다른 방법은 중첩된 순서 쌍(ordered pair)입니다. 이 접근 방식은 순서 쌍의 개념이 이미 정의되어 있다고 가정합니다.
- 0-튜플 (즉, 빈 튜플)은 빈 집합 에 의해 표현됩니다.
- n > 0을 갖는 n-튜플은 그것의 첫 번째 엔트리와 (n − 1)-튜플의 순서 쌍으로 정의될 수 있습니다 ((n − 1)-튜플은 n > 1일 때 남아있는 엔트리를 구성합니다):
이 정의는 (n − 1)-튜플에 재귀적으로 적용될 수 있습니다:
따라서, 예를 들어:
이 정의의 변형은 나머지 끝에서 원소를 "벗기기" 시작합니다:
- 0-튜플은 빈 집합 입니다.
- n > 0에 대해:
이 정의는 재귀적으로 적용될 수 있습니다:
따라서, 예를 들어:
Tuples as nested sets
순서쌍에 대한 쿠라토프스키의 표현을 사용하여, 위의 두 번째 정의는 순수 집합 이론(set theory)의 관점에서 다시 공식화될 수 있습니다:
- 0-튜플 (즉, 빈 튜플)은 빈 집합 에 의해 표현됩니다;
- 를 n-튜플 로 놓고, 라고 놓습니다. 그런-다음, 입니다. (오른쪽 화살표, 는 "와 인접됨"으로 읽힐 수 있습니다.)
이 공식화에서:
n-tuples of m-sets
이산 수학(discrete mathematics), 특히 조합론(combinatorics)과 유한 확률 이론(probability theory)에서, n-튜플은 다양한 세는 문제의 문맥에서 발생하고 길이 n의 순서화된 목록으로 보다 비공식적으로 처리됩니다.[7] 엔트리가 m 원소의 집합에서 오는 n-튜플은 반복을 갖는 배열, 다중집합의 순열, 및 일부 비-영어 문헌에서는 반복을 갖는 변형이라고도 합니다. m-집합의 n-튜플의 숫자는 mn입니다. 이것은 조합론적 곱의 규칙(rule of product)에서 따릅니다.[8] 만약 S가 카디널리티(cardinality) m의 유한 집합이면, 이 숫자는 n-겹 데카르트 거듭제곱(Cartesian power) S × S × ⋯ × S의 카디널리티입니다. 튜플은 이 곱 집합의 원소입니다.
Type theory
프로그래밍 언어에서 공통적으로 사용되는 유형 이론(type theory)에서, 튜플은 곱 유형(product type)을 가집니다; 이것은 길이뿐만 아니라 각 구성 요소의 기본 유형을 결정합니다. 공식적으로:
그리고 투영(projection)은 항 생성자입니다:
관계형 모델(relational model)에 사용된 레이블-지정된 원소를 갖는 튜플은 레코드 유형(record type)을 가집니다. 이들 유형은 모두 단순 유형화된 람다 계산법(simply typed lambda calculus)의 단순 확장으로 정의될 수 있습니다.[9]
유형 이론에서 튜플의 개념과 집합 이론에서 개념은 다음과 같은 방법으로 관련되어 있습니다: 만약 우리가 유형 이론의 자연스러운 모델(model)을 고려하고, 의미론적 해석을 나타내기 위해 스캇 대괄호를 사용하면, 모델은 다음을 만족하는 일부 집합 로 구성됩니다: (주목: 여기서 유형과 집합을 구별하기 위해 기울임꼴을 사용함)
그리고 기본 항의 해석은 다음입니다:
- .
유형 이론의 n-튜플은 집합 이론의 n-튜플로 자연스러운 해석을 가집니다:[10]
단위 유형(unit type)은 의미론적 해석으로 0-튜플을 가집니다.
See also
- Arity
- Coordinate vector
- Exponential object
- Formal language
- OLAP: Multidimensional Expressions
- Prime k-tuple
- Relation (mathematics)
- Sequence
- Tuplespace
Notes
References
- ^ https://wiki.haskell.org/Algebraic_data_type
- ^ https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment
- ^ http://stackoverflow.com/questions/5525795/does-javascript-guarantee-object-property-order
- ^ "N‐tuple - Oxford Reference". oxfordreference.com. Retrieved 1 May 2015.
- ^
Blackburn, Simon (2016) [1994]. "ordered n-tuple". The Oxford Dictionary of Philosophy. Oxford quick reference (3 ed.). Oxford: Oxford University Press. p. 342. ISBN 9780198735304. Retrieved 2017-06-30.
ordered n-tuple[:] A generalization of the notion of an [...] ordered pair to sequences of n objects.
- ^ OED, s.v. "triple", "quadruple", "quintuple", "decuple"
- ^ D'Angelo & West 2000, p. 9
- ^ D'Angelo & West 2000, p. 101
- ^ Pierce, Benjamin (2002). Types and Programming Languages. MIT Press. pp. 126–132. ISBN 0-262-16209-1.
- ^ Steve Awodey, From sets, to types, to categories, to sets, 2009, preprint
Sources
- D'Angelo, John P.; West, Douglas B. (2000), Mathematical Thinking/Problem-Solving and Proofs (2nd ed.), Prentice-Hall, ISBN 978-0-13-014412-6
- Keith Devlin, The Joy of Sets. Springer Verlag, 2nd ed., 1993, ISBN 0-387-94094-4, pp. 7–8
- Abraham Adolf Fraenkel, Yehoshua Bar-Hillel, Azriel Lévy, Foundations of school Set Theory, Elsevier Studies in Logic Vol. 67, 2nd Edition, revised, 1973, ISBN 0-7204-2270-1, p. 33
- Gaisi Takeuti, W. M. Zaring, Introduction to Axiomatic Set Theory, Springer GTM 1, 1971, ISBN 978-0-387-90024-7, p. 14
- George J. Tourlakis, Lecture Notes in Logic and Set Theory. Volume 2: Set Theory, Cambridge University Press, 2003, ISBN 978-0-521-75374-6, pp. 182–193
External links
The dictionary definition of tuple at Wiktionary