맨위로가기

튜플

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

튜플은 정해진 순서를 가지며, 중복된 원소를 포함할 수 있는 유한한 개수의 원소들의 순서 있는 나열이다. 튜플은 집합과 달리 원소의 순서가 중요하며, 같은 원소가 여러 번 나타날 수 있다. 튜플은 함수, 순서쌍, 내포된 집합을 이용하여 정의할 수 있으며, 튜플의 길이에 따라 널 튜플, 싱글, 순서쌍, 트리플 등으로 불린다. 튜플은 이산수학, 조합론, 타입 이론 등 다양한 분야에서 활용되며, n개의 원소를 가진 집합에서 원소를 취한 n-튜플의 총 개수는 mn이다.

더 읽어볼만한 페이지

  • 수열 - 코시 열
    코시 열은 무한수열에서 항들이 뒤로 갈수록 서로 가까워지는 수열로, 수렴열은 항상 코시 열이지만 그 역은 성립하지 않을 수 있으며, 실수의 완비성 정의 및 무한급수 수렴성 판정에 중요한 역할을 하는 개념이다.
  • 수열 - 실베스터 수열
    실베스터 수열은 각 항이 이전 항들의 곱에 1을 더한 값으로 정의되는 정수 수열로서, 재귀적으로 정의되며 이중 지수 함수적으로 증가하고, 이집트 분수 및 탐욕 알고리즘과 관련이 있으며, 역수 합은 1로 수렴한다.
  • 유형 이론 - 형 변환
    형 변환은 프로그래밍에서 변수의 데이터 타입을 변경하는 것으로, 암시적 형 변환과 명시적 형 변환으로 나뉘며, 객체 지향 프로그래밍에서는 업캐스팅과 다운캐스팅이 발생하고, 각 언어는 고유한 규칙과 방법을 제공하며 잘못된 형 변환은 오류를 유발할 수 있다.
  • 유형 이론 - 대수적 자료형
    대수적 자료형은 합 타입과 곱 타입을 조합하여 새로운 자료형을 정의하는 방법으로, 단일 연결 리스트나 이진 트리와 같은 자료 구조를 표현하고 패턴 매칭을 통해 자료형의 구조를 분해 및 처리하는 데 유용하며, 함수형 프로그래밍 언어에서 널리 사용된다.
  • 수학 표기법 - 기수법
    기수법은 수를 나타내는 방법 또는 체계로, 십진법을 비롯한 다양한 종류가 존재하며, 일진법, 명수법, 위치값 기수법 등으로 분류되고, 가장 널리 사용되는 십진법은 힌두-아라비아 숫자 체계를 기반으로 위치값 기수법의 발전과 0의 도입으로 수학적 계산의 효율성을 높였다.
  • 수학 표기법 - 중위 표기법
    중위 표기법은 사람이 이해하기 쉬운 연산자 표기 방식이지만, 컴퓨터가 구문 분석하기 어렵고 연산 순서를 위해 괄호나 연산자 우선순위 규칙이 필요하다.
튜플
튜플 정보
유형수학, 전산학
정의유한한 순서가 있는 요소들의 목록
수학적 정의
요소 나열 방식(a₁, a₂, ..., aₙ)
순서중요 (요소의 순서가 변경되면 다른 튜플로 간주됨)
중복허용 (동일한 요소가 여러 번 나타날 수 있음)
n튜플의 길이 (요소의 개수)
n-튜플길이가 n인 튜플
명칭
0-튜플빈 튜플
2-튜플쌍, 순서쌍
3-튜플세쌍
4-튜플네쌍
프로그래밍
사용함수에서 여러 값을 반환하거나, 여러 값을 묶어서 하나의 변수로 취급할 때 사용
특징튜플은 불변(immutable)인 경우가 많음 (내용 변경 불가)
지원 언어파이썬
스칼라
하스켈
자바스크립트 (일부)
기타
주의튜플은 집합과는 달리 순서가 있고, 중복된 원소를 허용함

2. 성질

튜플은 집합과 구별되는 몇 가지 중요한 성질을 가진다.


  • 순서: 튜플의 원소는 정해진 순서를 가지며, 순서가 바뀌면 다른 튜플이 된다. 예를 들어 (1, 2, 3)과 (3, 2, 1)은 서로 다른 튜플이다.
  • 중복: 튜플은 중복된 원소를 포함할 수 있다. 예를 들어 (1, 2, 2, 3)은 유효한 튜플이다.
  • 유한성: 튜플은 유한한 개수의 원소를 가진다.

2. 1. 동일성

두 n-튜플 (a₁, a₂, ..., aₙ)과 (b₁, b₂, ..., bₙ)이 같을 필요충분조건은 모든 i (1 ≤ i ≤ n)에 대해 aᵢ = bᵢ 가 성립하는 것이다.

따라서 튜플은 집합과 다음과 같은 점에서 다르다.

  • 튜플은 같은 원소를 여러 번 가질 수 있다. (1, 2, 2, 3) ≠ (1, 2, 3)이지만, 집합은 {1, 2, 2, 3} = {1, 2, 3}이다.
  • 튜플은 원소의 순서가 의미가 있다. (1, 2, 3) ≠ (3, 2, 1)이지만, 집합은 {1, 2, 3} = {3, 2, 1}이다.
  • 튜플은 원소의 개수가 유한하지만, 집합이나 중복집합은 원소의 개수가 무한할 수 있다.

3. 정의

튜플에는 그 성질을 부여하기 위한 여러 가지 정의가 있다.[1] 튜플을 정의하는 방법으로는 함수를 이용한 정의, 내포된 순서쌍을 이용한 정의, 내포된 집합을 이용한 정의 등이 있지만, 하위 섹션에서 자세하게 다루므로 여기서는 간략하게 다룬다.

3. 1. 함수를 이용한 정의

''n''-튜플은 튜플 성분들의 첨수들의 집합을 정의역, 튜플 성분들이 이루는 집합을 공역으로 하는 함수로 정의할 수 있다. 즉, 형식적으로 다음과 같이 표현할 수 있다.

:(a_1,a_2,\ldots,a_n)\equiv(X,Y,F)

여기서

:X=\{1,2,\ldots,n\}

:Y=\{a_1,a_2,\ldots,a_n\}

:F=\{(1,a_1),(2,a_2),\ldots,(n,a_n)\}

이를 덜 형식적으로 표현하면 다음과 같다.

:(a_1,a_2,\ldots,a_n):=(F(1),F(2),\ldots,F(n))

0-튜플은 공집합 함수로 식별될 수 있다. n \geq 1에 대해, ''n''-튜플 \left(a_1, \ldots, a_n\right)전사 함수로 식별될 수 있다.

:F ~:~ \left\{ 1, \ldots, n \right\} ~\to~ \left\{ a_1, \ldots, a_n \right\}

정의역

:\operatorname{domain} F = \left\{ 1, \ldots, n \right\} = \left\{ i \in \N : 1 \leq i \leq n\right\}

공역

:\operatorname{codomain} F = \left\{ a_1, \ldots, a_n \right\},

즉, i \in \operatorname{domain} F = \left\{ 1, \ldots, n \right\}에서 다음과 같이 정의된다.

:F(i) := a_i.

즉, F는 다음과 같이 정의되는 함수이다.

:\begin{alignat}{3}

1 \;&\mapsto&&\; a_1 \\

\;&\;\;\vdots&&\; \\

n \;&\mapsto&&\; a_n \\

\end{alignat}

이 경우, 등식

:\left(a_1, a_2, \dots, a_n\right) = \left(F(1), F(2), \dots, F(n)\right)

이 반드시 성립한다.

함수는 일반적으로 그래프로 식별되며, 이는 특정 순서쌍의 집합이다. 실제로 많은 저자들이 함수의 정의로 그래프를 사용한다. "함수"의 이러한 정의를 사용하여, 위의 함수 F는 다음과 같이 정의될 수 있다.

:F ~:=~ \left\{ \left(1, a_1\right), \ldots, \left(n, a_n\right) \right\}.

집합을 다룰 수 있는 문맥에서, ''n''-튜플은 다음과 같은 사상으로 간주할 수 있다. 즉, 그 정의역은 튜플의 각 요소를 가리키는 내포적인 첨자 집합(첨자 집합)이며, 공역은 요소의 순서쌍 전체를 이루는 집합이다. 집합론의 언어로는

:(a_1, a_2, \dots, a_n) \stackrel{\text{def}} (X,Y,F)

여기서

:

\begin{align}

X & = \{1, 2, \dots, n\} \\

Y & = \{a_1, a_2, \ldots, a_n\} \\

F & = \{(1, a_1), (2, a_2), \ldots, (n, a_n)\}. \\

\end{align}



더 직관적인 표기법을 사용하면,

: (a_1, a_2, \dots, a_n) \stackrel{\text{def}} (F(1), F(2), \dots, F(n))

로 정의된다.

3. 2. 내포된 순서쌍을 이용한 정의

집합론에서 튜플은 내포된(nested) 순서쌍으로 정의할 수 있다. 순서쌍은 미리 정의되어야 한다.

  • 0-튜플, 즉 비어있는 튜플은 공집합la로 정의한다.
  • 양의 정수 n에 대해, n-튜플은 n-튜플의 첫 성분을 첫 성분으로 하고, 나머지 성분들로 이루어진 (n-1)-튜플을 둘째 성분으로 하는 순서쌍이다.
  • : (a_1, a_2, a_3, \ldots, a_n) = (a_1, (a_2, a_3, \ldots, a_n))


이 정의를 조금 큰 n에 대해 펼쳐보면 다음과 같다.

:(a_1, a_2, a_3, \ldots, a_n) = (a_1, (a_2, (a_3, (\ldots, (a_{n-2}, (a_{n-1}, (a_n, ∅la)))\ldots))))

예를 들면 다음과 같다.

:(1, 2, 3, 4) = (1, (2, 3, 4)) = (1, (2, (3, 4))) = (1, (2, (3, (4, ∅la))))

위 정의에서 방향만 바뀐 경우인 다음의 정의법도 있다.

  • 0-튜플은 공집합이다.
  • n > 0에 대해, n-튜플은 다음과 같은 순서쌍이다.
  • : (a_1, a_2, \ldots, a_{n-1}, a_n) = ((a_1, a_2, \ldots, a_{n-1}), a_n)


이 정의를 재귀적으로 적용하면 다음과 같다.

:(a_1, a_2, \ldots, a_n) = ((\ldots(((∅la, a_1), a_2), \ldots), a_n)

예를 들면 다음과 같다.

:(1, 2, 3, 4) = ((((∅la, 1), 2), 3), 4)

3. 3. 내포된 집합을 이용한 정의

쿠라토프스키의 정의를 사용하면 튜플은 집합만으로 정의될 수 있다.[1]

# 0-튜플은 공집합 ∅이다.

# n-튜플 x = (a_1, a_2, \ldots, a_n)b를 추가한 튜플 (a_1, a_2, \ldots, a_n, b)는 다음과 같은 집합이다.

#:x \rightarrow b \equiv \{\{x\}, \{x, b\}\}

예를 들면 다음과 같다.

:

\begin{array}{lclcl}

() & & &=& \emptyset \\

& & & & \\

(1) &=& () \rightarrow 1 &=& \{\{()\},\{(),1\}\} \\

& & &=& \{\{\emptyset\},\{\emptyset,1\}\} \\

& & & & \\

(1,2) &=& (1) \rightarrow 2 &=& \{\{(1)\},\{(1),2\}\} \\

& & &=& \{\{\{\{\emptyset\},\{\emptyset,1\}\}\}, \\

& & & & \{\{\{\emptyset\},\{\emptyset,1\}\},2\}\} \\

& & & & \\

(1,2,3) &=& (1,2) \rightarrow 3 &=& \{\{(1,2)\},\{(1,2),3\}\} \\

& & &=& \{\{\{\{\{\{\emptyset\},\{\emptyset,1\}\}\}, \\

& & & & \{\{\{\emptyset\},\{\emptyset,1\}\},2\}\}\}, \\

& & & & \{\{\{\{\{\emptyset\},\{\emptyset,1\}\}\}, \\

& & & & \{\{\{\emptyset\},\{\emptyset,1\}\},2\}\},3\}\} \\

\end{array}


4. n-튜플의 총수 (중복 순열)

개의 원소를 가진 집합에서 원소를 취한 -튜플은 중복순열이라고 부른다. 이러한 튜플의 수는 이다(곱 규칙에 의해).[18] 다른 관점에서, 집합 의 크기가 이라면, 곱집합 의 크기는 이다.

5. 형 이론

타입 이론에서, 프로그래밍 언어에서 사용되는 튜플은 곱 형식을 갖는다. 이는 길이뿐만 아니라 각 구성 요소의 기본 타입도 고정한다. 형식적으로 다음과 같다.

:(x_1, x_2, \ldots, x_n) : \mathsf{T}_1 \times \mathsf{T}_2 \times \ldots \times \mathsf{T}_n

그리고 사영은 항 생성자이다.

:\pi_1(x) : \mathsf{T}_1,~\pi_2(x) : \mathsf{T}_2,~\ldots,~\pi_n(x) : \mathsf{T}_n

관계형 모델에서 사용되는 레이블이 지정된 요소를 가진 튜플은 레코드 타입을 갖는다. 이 두 타입 모두 단순 타입 람다 계산법의 간단한 확장으로 정의할 수 있다.[9]

타입 이론에서의 튜플 개념과 집합론에서의 튜플 개념은 다음과 같은 방식으로 관련되어 있다. 타입 이론의 자연스러운 모델을 고려하고, 스콧 괄호를 사용하여 의미론적 해석을 나타내는 경우, 모델은 다음과 같은 집합 S_1, S_2, \ldots, S_n으로 구성된다(여기에서 이탤릭체를 사용하여 타입을 집합과 구분함).

:[\![\mathsf{T}_1]\!] = S_1,~[\![\mathsf{T}_2]\!] = S_2,~\ldots,~[\![\mathsf{T}_n]\!] = S_n

그리고 기본 항의 해석은 다음과 같다.

:[\![x_1]\!] \in [\![\mathsf{T}_1]\!],~[\![x_2]\!] \in [\![\mathsf{T}_2]\!],~\ldots,~[\![x_n]\!] \in [\![\mathsf{T}_n]\!].

타입 이론의 n-튜플은 집합론의 n-튜플로 자연스럽게 해석된다.[10]

:[\![(x_1, x_2, \ldots, x_n)]\!] = (\,[\![x_1]\!], [\![x_2]\!], \ldots, [\![x_n]\!]\,)

단위 타입은 0-튜플로 의미론적으로 해석된다.

6. 길이에 따른 튜플의 이름

튜플의 길이에 따라 다른 이름으로 불린다. 다음은 튜플의 길이에 따른 이름과 다른 이름을 나타낸 표이다.

튜플의 길이, n이름다른 이름
0널 튜플 / 빈 시퀀스 / 유닛 / 0튜플
1모뉴플싱글 / 싱글톤 / 모나드 / 1튜플
2커플더블 / 순서쌍 / 투플 / 트윈 / 듀얼 / 듀드 / 다이애드 / 투섬 / 2튜플
3트리플트레블 / 트리플렛 / 트라이어드 / 순서트리플 / 쓰리섬
4쿼드러플쿼드 / 테트라드 / 쿼텟 / 쿼드러플렛
5퀸튜플펜튜플 / 퀸트 / 펜타드
6섹스튜플헥스튜플 / 헥사드
7셉튜플헵튜플 / 헵타드
8옥튜플옥타 / 옥텟 / 옥타드 / 옥튜플렛
9노뉴플노나드 / 에니아드
10데큐플데카드 / 데케이드 (구식)
11언데큐플헨데큐플 / 헨데카드
12듀오데큐플더즌 / 듀오데카드
13트레데큐플[베이커스 더즌]
14쿼터데큐플더블 셉튜플
15퀸데큐플트리플 퀸튜플
16섹스데큐플쿼드러플 쿼드러플
17셉텐데큐플
18옥토데큐플
19노벰데큐플
20비긴튜플
21언비긴튜플
22듀오비긴튜플
23트레비긴튜플
24쿼터비긴튜플
25퀸비긴튜플
26섹스비긴튜플
27셉텐비긴튜플
28옥토비긴튜플
29노벰비긴튜플
30트리긴튜플
31언트리긴튜플
32듀오트리긴튜플
40쿼드라긴튜플
41언쿼드라긴튜플
50퀸콰가긴튜플
60섹사가긴튜플
70셉투아긴튜플
80옥토가긴튜플
90농겐튜플
100센튜플
1,000밀루플킬리아드



"튜플"이라는 용어는 싱글, 커플/더블, 트리플, 쿼드러플, 퀸튜플, 섹스튜플, 셉튜플, 옥튜플 등과 같이 라틴어 숫자 이름에서 가져온 접두어를 사용하여 만들어졌다. 0-튜플은 "널 튜플" 또는 "빈 튜플", 1-튜플은 "싱글", 2-튜플은 "순서쌍" 또는 "커플", 3-튜플은 "트리플"이라고 한다. n은 음이 아닌 정수가 될 수 있다. 예를 들어, 복소수는 실수 2-튜플, 쿼터니언은 4-튜플, 옥토니언은 8-튜플, 세데니언은 16-튜플로 표현할 수 있다.

참조

[1] 웹사이트 Algebraic data type - HaskellWiki https://wiki.haskell[...]
[2] 웹사이트 Destructuring assignment https://developer.mo[...] 2023-04-18
[3] 웹사이트 Does JavaScript Guarantee Object Property Order? https://stackoverflo[...]
[4] 백과사전 N-tuple http://www.oxfordref[...] Oxford University Press 2015-05-01
[5] 서적 The Oxford Dictionary of Philosophy https://books.google[...] Oxford University Press 2017-06-30
[6] 문서 OED, s.v. "triple", "quadruple", "quintuple", "decuple"
[7] 논문
[8] 논문
[9] 서적 Types and Programming Languages https://archive.org/[...] MIT Press
[10] 간행물 From sets, to types, to categories, to sets http://www.andrew.cm[...]
[11] 웹사이트 N‐tuple - Oxford Reference http://www.oxfordref[...] 2015-05-01
[12] 웹사이트 Ordered n-tuple - Oxford Reference http://www.oxfordref[...] 2015-05-01
[13] 서적 Types and Programming Languages MIT Press
[14] 간행물 From sets, to types, to categories, to sets http://www.andrew.cm[...]
[15] 웹인용 N‐tuple - Oxford Reference http://www.oxfordref[...] 2015-05-01
[16] 웹인용 Ordered n-tuple - Oxford Reference http://www.oxfordref[...] 2015-05-01
[17] 논문
[18] 논문



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com