Lista ordenada finita de elementos
En matemáticas , una tupla es una secuencia finita o lista ordenada de números o, más generalmente, objetos matemáticos , que se denominan elementos de la tupla. Una n -tupla es una tupla de n elementos, donde n es un número entero no negativo . Sólo hay una tupla 0, llamada tupla vacía . Una tupla 1 y una tupla 2 comúnmente se denominan singleton y par ordenado , respectivamente.
Las tuplas pueden definirse formalmente a partir de pares ordenados por recurrencia partiendo de pares ordenados ; de hecho, una n -tupla se puede identificar con el par ordenado de sus ( n − 1 ) primeros elementos y su n ésimo elemento.
Las tuplas generalmente se escriben enumerando los elementos entre paréntesis " ( ) ", 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 corchetes angulares "⟨ ⟩". Las 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 puede aparecer a menudo cuando se habla de otros objetos matemáticos, como los vectores .
En informática , las tuplas se presentan en muchas formas. La mayoría de los lenguajes de programación funcional tipificados implementan tuplas directamente como tipos de productos , [1] estrechamente asociados con tipos de datos algebraicos , coincidencia de patrones y asignaciones de desestructuración . [2] Muchos lenguajes de programación ofrecen una alternativa a las tuplas, conocidas como tipos de registros , que presentan elementos desordenados a los que se accede por etiqueta. [3] Algunos lenguajes de programación combinan tipos de productos de tuplas ordenadas y tipos de registros desordenados en una sola construcción, como en las estructuras C y los registros Haskell. Las bases de datos relacionales pueden identificar formalmente sus filas (registros) como tuplas .
Las tuplas también aparecen en álgebra relacional ; al programar la web semántica con el Marco de Descripción de Recursos (RDF); en lingüística ; [4] y en filosofía . [5]
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 llama tupla nula o tupla vacía . Una tupla 1 se llama singleton (o singleton ), una tupla 2 se llama par o pareja ordenada y una tupla 3 se llama triplete (o triplete ). El número n puede ser cualquier número 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 -uple como sufijo, el sufijo original era -ple como en "triple" (tres veces) o "decuple" (diez veces). Esto se origina en el latín medieval plus (que significa "más") relacionado con el griego ‑πλοῦς, que reemplazó al clásico y antiguo tardío ‑plex (que significa "doblado"), como en "dúplex". [6] [un]
Propiedades
La regla general para la identidad de dos n -tuplas es
si y sólo si .![{\displaystyle a_{1}=b_{1},{\text{ }}a_{2}=b_{2},{\text{ }}\ldots,{\text{ }}a_{n}=b_ {norte}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
Así, una tupla tiene propiedades que la distinguen de un conjunto :
- Una tupla puede contener varias instancias del mismo elemento, por lo que
tupla ; pero listo .![{\displaystyle (1,2,2,3)\neq (1,2,3)}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle \{1,2,2,3\}=\{1,2,3\}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
- Los elementos de tupla están ordenados: tupla , pero conjunto .
![{\displaystyle (1,2,3)\neq (3,2,1)}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle \{1,2,3\}=\{3,2,1\}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
- Una tupla tiene un número finito de elementos, mientras que un conjunto o multiconjunto puede tener un número infinito de elementos.
Definiciones
Existen varias definiciones de tuplas que les confieren las propiedades descritas en la sección anterior.
Tuplas como funciones
La tupla puede identificarse como la función vacía . Porque la tupla puede identificarse con la función ( sobreyectiva )![{\displaystyle 0}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle n\geq 1,}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle n}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle F~:~\left\{1,\ldots ,n\right\}~\to ~\left\{a_{1},\ldots ,a_{n}\right\}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
con dominio
![{\displaystyle \operatorname {dominio} F=\left\{1,\ldots ,n\right\}=\left\{i\in \mathbb {N} :1\leq i\leq n\right\}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
y con codominio
![{\displaystyle \operatorname {codominio} F=\left\{a_{1},\ldots ,a_{n}\right\},}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
que se define en por![{\displaystyle i\in \operatorname {dominio} F=\left\{1,\ldots ,n\right\}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle F(i):=a_{i}.}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
Es decir, ¿la función definida por![{\displaystyle F}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle {\begin{alignedat}{3}1\;&\mapsto &&\;a_{1}\\\;&\;\;\vdots &&\;\\n\;&\mapsto &&\; a_ {n}\\\end{alignedat}}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
en cuyo caso la igualdad
![{\displaystyle \left(a_{1},a_{2},\dots,a_{n}\right)=\left(F(1),F(2),\dots,F(n)\right) }](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
necesariamente se cumple.
- Tuplas como conjuntos de pares ordenados
Las funciones se identifican comúnmente con sus gráficas , que es un conjunto determinado de pares ordenados. De hecho, muchos autores utilizan gráficas como definición de función. Usando esta definición de "función", la función anterior se puede definir como:![{\displaystyle F}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle F~:=~\left\{\left(1,a_{1}\right),\ldots ,\left(n,a_{n}\right)\right\}.}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
Tuplas como pares ordenados anidados
Otra forma de modelar tuplas en teoría de conjuntos es como pares ordenados anidados . Este enfoque supone que la noción de par ordenado ya ha sido definida.
- La tupla 0 (es decir, la tupla vacía) está representada por el conjunto vacío .
![{\displaystyle\emptyset}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
- Una n -tupla, con n > 0 , se puede definir como un par ordenado de su primera entrada y una ( n − 1) -tupla (que contiene las entradas restantes cuando n > 1) :
![{\displaystyle (a_{1},a_{2},a_{3},\ldots ,a_{n})=(a_{1},(a_{2},a_{3},\ldots ,a_{ norte}))}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
Esta definición se puede aplicar de forma recursiva a la ( n − 1 ) -tupla:
![{\displaystyle (a_{1},a_{2},a_{3},\ldots ,a_{n})=(a_{1},(a_{2},(a_{3},(\ldots , (a_ {n},\emptyset )\ldots ))))}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
Así, por ejemplo:
![{\displaystyle {\begin{alineado}(1,2,3)&=(1,(2,(3,\emptyset )))\\(1,2,3,4)&=(1,(2) ,(3,(4,\emptyset ))))\\\end{alineado}}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
Una variante de esta definición comienza a "despegar" elementos desde el otro extremo:
- La tupla 0 es el conjunto vacío .
![{\displaystyle\emptyset}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
- Para norte > 0 :
![{\displaystyle (a_{1},a_{2},a_{3},\ldots ,a_{n})=((a_{1},a_{2},a_{3},\ldots ,a_{ n-1}),a_{n})}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
Esta definición se puede aplicar de forma recursiva:
![{\displaystyle (a_{1},a_{2},a_{3},\ldots ,a_{n})=((\ldots (((\emptyset ,a_{1}),a_{2}), a_ {3}), \ldots), a_ {n})}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
Así, por ejemplo:
![{\displaystyle {\begin{alineado}(1,2,3)&=(((\emptyset ,1),2),3)\\(1,2,3,4)&=((((\ conjunto vacío, 1), 2), 3), 4)\\\end{aligned}}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
Tuplas como conjuntos anidados
Utilizando la representación de Kuratowski para un par ordenado , la segunda definición anterior puede reformularse en términos de teoría de conjuntos pura :
- La tupla 0 (es decir, la tupla vacía) está representada por el conjunto vacío ;
![{\displaystyle\emptyset}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
- Sea una n -tupla y sea . Entonces, . (La flecha derecha, , podría leerse como "junto a".)
![{\displaystyle x}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle (a_{1},a_{2},\ldots,a_{n})}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle x\rightarrow b\equiv (a_{1},a_{2},\ldots,a_{n},b)}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle x\rightarrow b\equiv \{\{x\},\{x,b\}\}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle\rightarrow}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
En esta formulación:
![{\displaystyle {\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{matriz}}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
norte-tuplas demetro-conjuntos
En matemáticas discretas , especialmente combinatoria y teoría de 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 . [7] Las n -tuplas cuyas entradas provienen de un conjunto de m elementos también se denominan arreglos con repetición , permutaciones de un multiconjunto y, en alguna literatura no inglesa, variaciones con repetición . El número de n -tuplas de un m -conjunto es m n . Esto se desprende de la regla combinatoria del producto . [8] Si S es un conjunto finito de cardinalidad m , este número es la cardinalidad de la potencia cartesiana n veces 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 fija no sólo la longitud, sino también los tipos subyacentes de cada componente. Formalmente:
![{\displaystyle (x_{1},x_{2},\ldots,x_{n}):{\mathsf {T}}_{1}\times {\mathsf {T}}_{2}\times \ ldots \times {\mathsf {T}}_{n}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
y las proyecciones son constructores de términos:
![{\displaystyle \pi _{1}(x):{\mathsf {T}}_{1},~\pi _{2}(x):{\mathsf {T}}_{2},~\ ldots ,~\pi _{n}(x):{\mathsf {T}}_{n}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
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 . [9]
La noción de tupla en la teoría de tipos y la de la teoría de conjuntos están relacionadas de la siguiente manera: si consideramos el modelo natural de una teoría de tipos y utilizamos los corchetes de Scott para indicar la interpretación semántica, entonces el modelo consta de algunos conjuntos ( nota: el uso de cursiva aquí que distingue conjuntos de tipos) tales que:![{\displaystyle S_{1},S_{2},\ldots,S_{n}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle [\![{\mathsf {T}}_{1}]\!]=S_{1},~[\![{\mathsf {T}}_{2}]\!]=S_ {2},~\ldots ,~[\![{\mathsf {T}}_{n}]\!]=S_{n}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
y la interpretación de los términos básicos es:
.
La n -tupla de la teoría de tipos tiene la interpretación natural como una n -tupla de la teoría de conjuntos: [10]
![{\displaystyle [\![(x_{1},x_{2},\ldots ,x_{n})]\!]=(\,[\![x_{1}]\!],[\! [x_{2}]\!],\ldots ,[\![x_{n}]\!]\,)}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
El tipo de unidad tiene como interpretación semántica la tupla 0.
Ver también
Notas
- ↑ Compárese la etimología de ploidía , del griego -fold.
Referencias
- ^ "Tipo de datos algebraicos - HaskellWiki". wiki.haskell.org .
- ^ "Asignación de desestructuración". Documentos web de MDN . 18 de abril de 2023.
- ^ "¿JavaScript garantiza el orden de las propiedades de los objetos?". Desbordamiento de pila .
- ^ Matthews, PH, ed. (Enero de 2007). "N-tupla". El conciso Diccionario Oxford de Lingüística . Prensa de la Universidad de Oxford. ISBN 9780199202720. Consultado el 1 de mayo de 2015 .
- ^ Blackburn, Simón (1994). "n-tupla ordenada". El Diccionario Oxford de Filosofía. Referencia rápida de las directrices de Oxford (3 ed.). Oxford: Oxford University Press (publicado en 2016). pag. 342.ISBN 9780198735304. Consultado el 30 de junio de 2017 .
n-tupla ordenada[:] Una generalización de la noción de un [...] par ordenado a secuencias de n objetos.
- ^ OED , sv "triple", "cuádruple", "quíntuple", "decuple"
- ^ D'Angelo y West 2000, pag. 9
- ^ D'Angelo y West 2000, pag. 101
- ^ Pierce, Benjamín (2002). Tipos y Lenguajes de Programación . Prensa del MIT. págs. 126-132. ISBN 0-262-16209-1.
- ^ Steve Awodey, De conjuntos a tipos, categorías y conjuntos, 2009, preimpresión
Fuentes
- D'Angelo, John P.; West, Douglas B. (2000), Pensamiento matemático/resolución de problemas y pruebas (2ª ed.), Prentice-Hall, ISBN 978-0-13-014412-6
- Keith Devlin , La alegría de los decorados . Springer Verlag, 2.ª ed., 1993, ISBN 0-387-94094-4 , págs. 7–8
- Abraham Adolf Fraenkel , Yehoshua Bar-Hillel , Azriel Lévy , Fundamentos de la teoría de conjuntos escolar , Elsevier Studies in Logic, vol. 67, segunda edición, revisada, 1973, ISBN 0-7204-2270-1 , pág. 33
- Gaisi Takeuti , WM Zaring, Introducción a la teoría de conjuntos axiomática , Springer GTM 1, 1971, ISBN 978-0-387-90024-7 , p. 14
- George J. Tourlakis, Apuntes de conferencias sobre lógica y teoría de conjuntos. Volumen 2: Teoría de conjuntos , Cambridge University Press, 2003, ISBN 978-0-521-75374-6 , págs.
Enlaces externos
La definición del diccionario de tupla en Wikcionario