Tupla

Compartir Imprimir Citar
Finita ordenada lista de elementos

En matemáticas, una tupla es una lista ordenada finita (secuencia) de elementos. Una n-tuple es una secuencia (o lista ordenada) de n elementos, donde n es un número entero no negativo. Solo hay una tupla 0, denominada la tupla vacía. Una tupla n se define inductivamente mediante la construcción de un par ordenado.

Los matemáticos suelen escribir tuplas enumerando los elementos entre paréntesis "()" y separados por una coma y un espacio; por ejemplo, (2, 7, 4, 1, 7) denota una tupla de 5. A veces, se utilizan otros símbolos para rodear los elementos, como corchetes "[ ]" o paréntesis angulares "⟨ ⟩". Llaves "{ }" se utilizan para especificar matrices en algunos lenguajes de programación pero no en expresiones matemáticas, ya que son la notación estándar para conjuntos. El término tupla a menudo puede aparecer cuando se habla de otros objetos matemáticos, como los vectores.

En informática, las tuplas se presentan de muchas formas. La mayoría de los lenguajes de programación funcional tipificados implementan tuplas directamente como tipos de productos, estrechamente asociados con tipos de datos algebraicos, coincidencia de patrones y asignación de desestructuración. Muchos lenguajes de programación ofrecen una alternativa a las tuplas, conocidas como tipos de registro, que presentan elementos desordenados a los que se accede por etiqueta. Algunos lenguajes de programación combinan tipos de productos de tupla ordenados y tipos de registros no ordenados en una sola construcción, como en las estructuras C y los registros de Haskell. Las bases de datos relacionales pueden identificar formalmente sus filas (registros) como tuplas.

Las tuplas también ocurren en álgebra relacional; al programar la web semántica con el Resource Description Framework (RDF); en lingüística; y en filosofía.

Etimología

El término se originó como una abstracción de la secuencia: simple, pareja/doble, triple, cuádruple, quíntuple, séxtuple, séptuple, óctuple,..., n‑tuple,..., donde los prefijos se toman de los nombres latinos de los numerales. La tupla 0 única se denomina tupla nula o tupla vacía. Una tupla de 1 se denomina simple (o singleton), una tupla de 2 se denomina par ordenado o pareja, y una tupla de 3 se llama triple (o triplete). El número n puede ser cualquier entero no negativo. Por ejemplo, un número complejo se puede representar como una tupla de 2 reales, un cuaternión se puede representar como una tupla de 4, un octonión se puede representar como una tupla de 8 y un sedenión se puede representar como una tupla de 16.

Aunque estos usos tratan a ‑uple como el sufijo, el sufijo original era ‑ple como en "triple" (triple) o "decuple" (décuplo). Tiene su origen en el latín medieval plus (que significa "más") relacionado con el griego ‑πλοῦς, que reemplazó al ‑plex clásico y antiguo tardío (que significa &# 34;doblado"), como en "dúplex".

Nombres para tuplas de longitudes específicas

Longitud del tubo, n{displaystyle n}NombreNombres alternativos
0tuple vacíatuple null / secuencia vacía / unidad / ninguna izquierda
1monuplesingle / singleton / monad
2parejadoble / ordenado par / dos-ple / doble / doble / duad / dyad / dossome
3tripletripble / triplet / triad / pedido triple / trío
4quadruplecuádruple / tetrad / cuarteto / cuádruple
5quintuplepentuple / quint / pentad
6sextuplehextuple / hexad
7septupleheptuple / heptad
8octupleocta / octeto / octad / octuplet
9nonuplenoad / ennead
10decupledecad / decadencia (anticuado)
11desocupaciónhendecuple / hendecad
12duodecupledocena / duodecad
13tredecupepanadero docena
14quattuordecupledoble septuple
15quindecupletriple quintuple
16sexdecuplequadruple quadruple
17septendecupleN/A
18octodecupleDoble Nonuple
19novemdecupleN/A
20vigintupleQuadruple Quintuple
21unvigintupleTriple Septuple
22duovigintupleDoble ocupación
23trevigintuple
24quattuorvigintuple
25quinvigintuple
26sexvigintuple
27septenvigintuple
28octovigintuple
29novemvigintuple
30trigintuple
31untrigintuple
32duotrigintupleDouble Sexdecuple
40quadragintuple
50quinquagintuple
60sexagintuple
70septuagintuple
80octogintuple
90nongentuple
100Centella
1.000molinoChiliad
10.000.myriupledecimilluple
100.000decamyriuplecentimilluple
1,000,000meguple
10,000,000decameguple
1.000.000giguple
10^12teruple
10^15petuple
10^18exuple
10^21zettuple
10^24Yottuple
10^27ronnuple
10^30quetuple
10^100googol

Note que para n≥ ≥ 3{displaystyle ngeq 3}, el nombre tuple en la tabla anterior también puede funcionar como un verbo que significa "para multiplicar [el objeto directo] n{displaystyle n}"; por ejemplo, "a quintuple" significa "a multiplicarse por 5". Si n=2{displaystyle n=2}, entonces el verbo asociado es "a doble". También hay un verbo "esquiple", que significa " multiplicarse por 3/2". Teóricamente, "monuple" también podría utilizarse de esta manera.

Propiedades

La regla general para la identidad de dos n-tuplas es

()a1,a2,...... ,an)=()b1,b2,...... ,bn){displaystyle (a_{1},a_{2},ldotsa_{n}=(b_{1},b_{2},ldotsb_{n}} si a1=b1,a2=b2,...... ,an=bn{displaystyle a_{1}=b_{1},{text{ }a_{2}=b_{2},{text{ }ldots{text{text{ }a_{n}=b_{n}.

Así, una tupla tiene propiedades que la distinguen de un conjunto:

  1. Un tuple puede contener múltiples instancias del mismo elemento, por lo que
    tuple ()1,2,2,3)ل ل ()1,2,3){displaystyle (1,2,2,3)neq (1,2,3)}; pero establecido {}1,2,2,3}={}1,2,3}{displaystyle {1,2,2,2,3}=1,2,3}}.
  2. Los elementos de tuple se ordenan: tuple ()1,2,3)ل ل ()3,2,1){displaystyle (1,2,3)neq (3,2,1)}, pero listo {}1,2,3}={}3,2,1}{displaystyle {1,2,3}=3,2,1}}.
  3. Un tuple tiene un número finito de elementos, mientras que un conjunto o un multiset pueden tener un número infinito de elementos.

Definiciones

Hay varias definiciones de tuplas que les otorgan las propiedades descritas en la sección anterior.

Tuplas como funciones

El 0{displaystyle 0}- se puede identificar como la función vacía. Para n≥ ≥ 1,{displaystyle ngeq 1,} el n{displaystyle n}-tuple ()a1,...... ,an){displaystyle left(a_{1},ldotsa_{n}right)} puede identificarse con la función (surjetiva)

F:{}1,...... ,n}→ → {}a1,...... ,an}{displaystyle F~:~left{1,ldotsnright ~left{a_{1},ldotsa_{n}right}

con dominio

dominio⁡ ⁡ F={}1,...... ,n}={}i▪ ▪ N:1≤ ≤ i≤ ≤ n}{displaystyle operatorname {domain} F=left{1,ldotsnright}=left{iin mathbb {N}:1leq ileq nright}

y con codominio

codomain⁡ ⁡ F={}a1,...... ,an},{displaystyle operatorname {codomain} F=left{a_{1},ldotsa_{n}right}

que se define en i▪ ▪ dominio⁡ ⁡ F={}1,...... ,n}{displaystyle iin operatorname {domain} F=left{1,ldotsnright}} por

F()i):=ai.{displaystyle F(i):=a_{i}

Eso es, F{displaystyle F} es la función definida

1↦ ↦ a1⋮ ⋮ n↦ ↦ an{displaystyle {begin{alignedat}{3}1; recurmapsto ' a_{1}\\;;vdots ' clérigos ';n; };

en cuyo caso la igualdad

()a1,a2,...... ,an)=()F()1),F()2),...... ,F()n)){displaystyle left(a_{1},a_{2},dotsa_{n}right)=left(F(1),F(2),dotsF(n)right)}

tiene necesariamente.

Tuplas como conjuntos de pares ordenados

Las funciones se identifican comúnmente con sus gráficos, que es un determinado conjunto de pares ordenados. De hecho, muchos autores utilizan gráficos como definición de una función. Usando esta definición de "función", la función anterior F{displaystyle F} puede definirse como:

F:={}()1,a1),...... ,()n,an)}.{displaystyle F~:=~leftleft(1,a_{1}right),ldotsleft(n,a_{n}right)right}

Tuplas como pares ordenados anidados

Otra forma de modelar tuplas en la teoría de conjuntos es como pares ordenados anidados. Este enfoque asume que la noción de par ordenado ya ha sido definida.

  1. El 0-tuple (es decir, el tuple vacío) está representado por el conjunto vacío ∅ ∅ {displaystyle emptyset }.
  2. An n-tuple, con n ■ 0, se puede definir como un par ordenado de su primera entrada y una ()n −1)-tuple (que contiene las entradas restantes cuando n ■ 1):
    ()a1,a2,a3,...... ,an)=()a1,()a2,a3,...... ,an)){displaystyle (a_{1},a_{2},a_{3},ldotsa_{n}=(a_{1},(a_{2},a_{3},ldotsa_{n})}

Esta definición se puede aplicar recursivamente a la tupla (n − 1):

()a1,a2,a3,...... ,an)=()a1,()a2,()a3,()...... ,()an,∅ ∅ )...... )))){displaystyle (a_{1},a_{2},a_{3},ldotsa_{n}=(a_{1},(a_{2},(a_{3},(ldots(a_{n},emptyset)ldots)})}

Así, por ejemplo:

()1,2,3)=()1,()2,()3,∅ ∅ )))()1,2,3,4)=()1,()2,()3,()4,∅ ∅ )))){displaystyle {begin{aligned}(1,2,3) tarde=(1,(2,(3,emptyset)))(1,2,3,4) {=(1,(2,(3,(4,emptyset))))\end{aligned}}}

Una variante de esta definición comienza "desprendiéndose" elementos del otro extremo:

  1. El 0-tuple es el conjunto vacío ∅ ∅ {displaystyle emptyset }.
  2. Para n ■ 0:
    ()a1,a2,a3,...... ,an)=()()a1,a2,a3,...... ,an− − 1),an){displaystyle (a_{1},a_{2},a_{3},ldotsa_{n}=(a_{1},a_{2},a_{3},ldotsa_{n-1}),a_{n})}}}}

Esta definición se puede aplicar recursivamente:

()a1,a2,a3,...... ,an)=()()...... ()()()∅ ∅ ,a1),a2),a3),...... ),an){displaystyle (a_{1},a_{2},a_{3},ldotsa_{n})=(ldots ((emptyseta_{1}),a_{2}),a_{3}),ldots),a_{n})}}}}

Así, por ejemplo:

()1,2,3)=()()()∅ ∅ ,1),2),3)()1,2,3,4)=()()()()∅ ∅ ,1),2),3),4){displaystyle {begin{aligned}(1,2,3) tarde=((emptyset1),2),3)(1,2,3,4) limitada=(((((((emptyset1),2),3),4)\end{aligned}}}}

Tuplas como conjuntos anidados

Usando la representación de Kuratowski para un par ordenado, la segunda definición anterior se puede reformular en términos de teoría de conjuntos puros:

  1. El 0-tuple (es decir, el tuple vacío) está representado por el conjunto vacío ∅ ∅ {displaystyle emptyset };
  2. Vamos x{displaystyle x} ser un n-tuple ()a1,a2,...... ,an){displaystyle (a_{1},a_{2},ldotsa_{n}}, y dejar x→ → b↑ ↑ ()a1,a2,...... ,an,b){displaystyle xrightarrow bequiv (a_{1},a_{2},ldotsa_{n},b)}. Entonces, x→ → b↑ ↑ {}{}x},{}x,b}}{displaystyle xrightarrow bequiv {fnMicrosoft Sans Serif}. (La flecha derecha, → → {displaystyle rightarrow }, podría ser leído como "junto con".)

En esta formulación:

())=∅ ∅ ()1)=())→ → 1={}{}())},{}()),1}}={}{}∅ ∅ },{}∅ ∅ ,1}}()1,2)=()1)→ → 2={}{}()1)},{}()1),2}}={}{}{}{}∅ ∅ },{}∅ ∅ ,1}}},{}{}{}∅ ∅ },{}∅ ∅ ,1}},2}}()1,2,3)=()1,2)→ → 3={}{}()1,2)},{}()1,2),3}}={}{}{}{}{}{}∅ ∅ },{}∅ ∅ ,1}}},{}{}{}∅ ∅ },{}∅ ∅ ,1}},2}}},{}{}{}{}{}∅ ∅ },{}∅ ∅ ,1}}},{}{}{}∅ ∅ },{}∅ ∅ ,1}},2}},3}}{displaystyle {begin{array}{lclcl}() {fnMicrosoft Sans Serif} {fnMicrosoft Sans Serif} },\\\\\}\\\\}\\\\[1,2,3) âTMa âTMa 3 âTMa{(1,2),{(1,2),3}\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ {\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\cH00\\\\\\\\\\\\\\\cH00\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\cH },\\\\\\\\\\\\\{\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\fnMinMinMinMinMinMinMinMinMinMinMinMinMinMinMinMinMinMinMinMinMinMinMinMinMinMinMinMinMinMinMinMinMinMinMinMinMinMinMinMinMinMinMinMinMinMinMinMinMinMinMinMinMinMinMin {\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\cH00\\\\\\\\\\\\\\\cH00\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\cH {fnMicrosoft Sans Serif}

N-tuplas de m-conjuntos

En matemáticas discretas, especialmente en combinatoria y teoría de la probabilidad finita, las n-tuplas surgen en el contexto de varios problemas de conteo y se tratan de manera más informal como listas ordenadas de longitud n. n-tuplas cuyas entradas provienen de un conjunto de m elementos también se denominan arreglos con repetición, permutaciones de un conjunto múltiple y, en alguna literatura no inglesa, variaciones con repetición. El número de tuplas n de un conjunto m es mn. Esto se sigue de la regla combinatoria del producto. Si S es un conjunto finito de cardinalidad m, este número es la cardinalidad de la potencia cartesiana de npliegues S × S × ⋯ × S. Las tuplas son elementos de este conjunto de productos.

Teoría de tipos

En la teoría de tipos, comúnmente utilizada en lenguajes de programación, una tupla tiene un tipo de producto; esto corrige no solo la longitud, sino también los tipos subyacentes de cada componente. Formalmente:

()x1,x2,...... ,xn):T1× × T2× × ...... × × Tn{displaystyle (x_{1},x_{2},ldotsx_{n} mathsf {T}_{1}times {mathsf {T}_{2}times ldots times {mathsf {T}_{n}

y las proyecciones son constructores de términos:

π π 1()x):T1,π π 2()x):T2,...... ,π π n()x):Tn{displaystyle pi _{1}(x):{mathsf {T}_{1},~pi _{2}(x):{mathsf {T}_{2},~ldots~pi _{n}(x):{mathsf {T}}_{n}}}

La tupla con elementos etiquetados utilizada en el modelo relacional tiene un tipo de registro. Ambos tipos se pueden definir como extensiones simples del cálculo lambda de tipo simple.

La noción de un tuple en la teoría del tipo y que en la teoría del conjunto están relacionados de la siguiente manera: Si consideramos el modelo natural de una teoría de tipo, y utilizamos los corchetes de Scott para indicar la interpretación semántica, entonces el modelo consiste en algunos conjuntos S1,S2,...... ,Sn{displaystyle S_{1},S_{2},ldotsS_{n} (nota: el uso de la cursiva aquí que distingue conjuntos de tipos) tal que:

[[T1]]=S1,[[T2]]=S2,...... ,[[Tn]]=Sn{fnMicrosoft Sans Serif}=S_{1},~[![] {fnMitsf {f}_{2}]!]=S_{2},~ldots~[\] [{mathsf {T}_{n}]]=S_{n}

y la interpretación de los términos básicos es:

[[x1]]▪ ▪ [[T1]],[[x2]]▪ ▪ [[T2]],...... ,[[xn]]▪ ▪ [[Tn]]{displaystyle [! {fnMitsf {fnMitsf}]!],~[] [x_{2}]!]in [! [{sf {f}_{2}]!],~ldots~[![x_{n}]!]in [! {cH00cH00} {ccH00}cH00}cH00}cH00cH00cH00cH00}cH00cH00}cH00cH00cH00}cH00}cH00}cH00cH00cH00}cH00cH00cH00}cH00}cH00cH00cH00cH00}cH00cH00}cH00cH00cH00cH00cH00cH00cH00cH00}cH00cH00cH00cH00cH00cH00}cH00c.

La tupla n de la teoría de tipos tiene la interpretación natural como una n-tupla de teoría de conjuntos:

[[()x1,x2,...... ,xn)]]=()[[x1]],[[x2]],...... ,[[xn]]){fnfn}fncH00cn}]!=(,[]![]!,[]!], [![x_{1}!], [![x_{2}]!],ldots[!

El tipo de unidad tiene como interpretación semántica la tupla 0.