Ir al contenido

Diferencia entre revisiones de «Tupla»

De Wikipedia, la enciclopedia libre
Contenido eliminadoContenido añadido
mJarould trasladó la páginaN-adaaTuplasobre una redirección: ¿Y se puede saber de dónde sacó ese término? Ni siquiera lo justificó en el artículo
Función de sugerencias de enlaces: 3 enlaces añadidos.
(No se muestran 43 ediciones intermedias de 37 usuarios)
Línea 1: Línea 1:
En [[matemáticas]], una '''tupla o upla '''es una lista (secuencia) ordenada y finita de elementos.
{{referencias|t=20140723122537}}


* Una ''n''-tupla es una secuencia (o lista ordenada) de ''n'' elementos, donde ''n'' es un [[Número natural|número entero no negativo]].
En [[matemáticas]], una '''tupla''', es una lista ordenada de elementos. Una '''''n'''-tupla'' es una [[Secuencia (matemáticas)|secuencia]] (o lista ordenada) de '''''n''''' elementos, siendo '''''n''''' un número natural (entero no-negativo). La única 0-tupla es la secuencia vacía. Una n-tupla se define inductivamente desde la construcción de un [[Par ordenado|par ordenado]]. Las tuplas suelen anotarse listando sus elementos entre paréntesis "<math>(\text{ })</math>", separados por comas. Por ejemplo, <math>(2, 7, 4, 1, 7)</math> denota una 5-tupla. En ocasiones, se usan otros delimitadores. Como los corchetes "<math>[\text{ }]</math>" o las angulares "<math>\langle\text{ }\rangle</math>".

Las tuplas suelen emplearse para describir otros objetos matemáticos, como los [[vector|vectores]]. Esto es, una [[Lista (estructura de datos)|lista]] con un número limitado de objetos (una secuencia ''infinita'' se denomina en matemática como una [[Familia de conjuntos|familia]], aunque hay autores que consideran el término tupla para denominar no solo listas finitas). Las tuplas se emplean para describir objetos matemáticos que tienen estructura, es decir que son capaces de ser descompuestos en un cierto número de componentes. Por ejemplo, un [[grafo dirigido]] se puede definir como una tupla de (''V'', ''E'') donde ''V'' es el conjunto de [[Nodo_(informática)|nodo]]s y ''E'' es el [[subconjunto]] de ''V'' × ''V'' que denota las aristas del [[grafo]].
* Una ''n''-tupla se define [[Definición recursiva|inductivamente]] mediante la construcción de un [[par ordenado]].
* Sólo hay una tupla 0, denominada tupla vacía.

Los matemáticos suelen escribir tuplas enumerando los elementos entre [[paréntesis]] "()" y separados por [[Coma (puntuación)|comas]]; por ejemplo, (2, 7, 4, 1, 7) denota una tupla de 5.

A veces se utilizan otros símbolos para rodear los elementos, como [[Corchete|corchetes]] "[]" o [[Corchete angular|corchetes angulares]] "⟨⟩". Las [[Llave (signo gráfico)|llaves]] "{}" se utilizan para especificar [[Vector (informática)|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 [[Vector|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 [[Tipo de dato|tipos de datos]] algebraicos, coincidencia de patrones y asignación de des-estructuració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 tuplas ordenadas y tipos de registros desordenados en una única construcción, como en las estructuras [[C (lenguaje de programación)|C]] y los registros [[Haskell]].

Las bases de datos relacionales pueden identificar formalmente sus [[Registro (base de datos)|filas (registros)]] como tuplas.

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


== Origen del concepto ==
== Origen del concepto ==
El término ''tupla'' se generó sencillamente de una generalización de la secuencia siguiente: ''dupla'', ''tripla'', ''cuádrupla'', ''quíntupla'',... ''n-tupla''.


* Una tupla de longitud ''n'' se describe generalmente como una '''''n''-tupla'''.
El término ''tupla'' se generó sencillamente de una generalización de la secuencia siguiente: ''dupla'', ''tripla'', ''cuádrupla'', ''quíntupla'',... ''n-tupla''. Una tupla de longitud ''n'' se describe generalmente como una '''''n''-tupla'''. Una 2-tupla, por ejemplo, se denomina un ''par'' o ''dupla''; una 3-tupla una ''tripla'' o ''tripleta'' (en Latinoamérica también se usa ''terna'' o ''triada'').El prefijo ''n'' puede ser por generalización cualquier número entero positivo; se puede por ejemplo denominar un [[cuaternión]] mediante la representación de una 4-tupla, y continuar generando nombres sucesivamente, tales como una ''octupla'', pero muchos matemáticos prefieren la denominación rápida y sencilla de escribir una "8-tupla" incluso si se pronunciara como "octupla".


* Una 2-tupla, por ejemplo, se denomina un ''par'' o ''dupla'';
== Definiciones formales ==


* una 3-tupla una ''tripla'' o ''tripleta'' (en Hispanoamérica también se usa ''terna'' o ''tríada'').
Las principales propiedades que distinguenauna tupla de, por ejemplo un [[conjunto]], son que:

El prefijo ''n'' puede ser por generalización cualquier número entero positivo; se puede,por ejemplo,denominar un [[cuaternión]] mediante la representación de una 4-tupla, y continuar generando nombres sucesivamente, tales como una ''octupla'', pero muchos matemáticos prefieren la denominación rápida y sencilla de escribir una "8-tupla" incluso si se pronunciara como "octupla".

Aunque es un término utilizado habitualmente dentro de la matemática y la programación,<ref name = "Tuplas USM Chile" > {{ Cita web
| url = http://progra.usm.cl/apunte/materia/tuplas.html
| título = Tuplas
| fechaacceso = 6 de julio de 2022
| sitioweb = [[Universidad Técnica Federico Santa María]]
| cita = Una tupla es una secuencia de valores agrupados. Una tupla sirve para agrupar, como si fueran un único valor, varios valores que, por su naturaleza, deben ir juntos.
| formato = html
| urlarchivo = https://web.archive.org/web/20120827010233/http://progra.usm.cl/apunte/materia/tuplas.html
| fechaarchivo = 27 de agosto de 2012
}} </ref> la palabra «tupla» no está en el diccionario de la Real Academia Española, ni como sufijo ni como término independiente.<ref>{{Cita web|url=https://dle.rae.es/|título=Diccionario de la lengua española {{!}} Edición del Tricentenario|fechaacceso=25 de abril de 2020|apellido=ASALE|nombre=RAE-|sitioweb=«Diccionario de la lengua española» - Edición del Tricentenario|idioma=es}}</ref>

== Definiciones formales ==
Las principales propiedades que distinguen una tupla de, por ejemplo,un [[conjunto]], son queen dicha tupla:
# Un objeto puede contener internamente (por agregación) a otros objetos.
# Un objeto puede contener internamente (por agregación) a otros objetos.
# Los objetos aparecen obligatoriamente representados en un orden dado.
# Los objetos aparecen obligatoriamente representados en un orden dado.


Es de notar que la primera de las características distingue de un [[conjunto ordenado]] y la segunda de los que se denomina un [[multiconjunto]]. Esto sepudeformalizar dando la siguiente regla de identidad para dos ''n''-tuplas:
Es de notar que la primera de las características distingue delo que se denominaun [[multiconjunto]] y la segunda de los que se denomina un [[conjunto ordenado]]. Esto sepuedeformalizar dando la siguiente regla de identidad para dos ''n''-tuplas:


:<math>(a_1, a_2, \ldots, a_n) = (b_1, b_2, \ldots, b_n) \Leftrightarrow a_1= b_1,\text{ }a_2=b_2,\text{ }\ldots,\text{ }a_n=b_n</math>
:<math>(a_1, a_2, \ldots, a_n) = (b_1, b_2, \ldots, b_n) \Leftrightarrow a_1= b_1,\text{ }a_2=b_2,\text{ }\ldots,\text{ }a_n=b_n</math>
Línea 20: Línea 53:
Otra forma de formalizar tuplas es mediante [[asociación biyectiva]] entre la definición de una tupla y una construcción más primitiva en la [[teoría de conjuntos]] tal y como [[par ordenado|pares ordenados]]. Por ejemplo, una ''n''-tupla (con ''n''> 2) se puede definir como un [[par ordenado]] de su primera entrada y (''n''−1)-tupla que contenga el resto de las entradas, de tal forma que:
Otra forma de formalizar tuplas es mediante [[asociación biyectiva]] entre la definición de una tupla y una construcción más primitiva en la [[teoría de conjuntos]] tal y como [[par ordenado|pares ordenados]]. Por ejemplo, una ''n''-tupla (con ''n''> 2) se puede definir como un [[par ordenado]] de su primera entrada y (''n''−1)-tupla que contenga el resto de las entradas, de tal forma que:


:<math>(a_1, a_2, \ldots, a_n) = (a_1, (a_2, (\ldots, (a_n))</math>
:<math>(a_1, a_2, \ldots, a_n) = (a_1, (a_2, (\ldots, (a_n))))</math>


Empleando la definición más corriente dentro de la teoría de conjuntos para un [[par ordenado]] y dejando que el conjunto vacío represente la tupla vacía, se puede obtener un resultado correcto empleando una definición por [[Inducción matemática|inductiva]]:
Empleando la definición más corriente dentro de la teoría de conjuntos para un [[par ordenado]] y dejando que el[[conjunto vacío]]represente la tupla vacía, se puede obtener un resultado correcto empleando una definición por [[Inducción matemática|inductiva]]:
# La 0-tupla (por ejemplo la tupla vacía) se representa por <math>\varnothing</math>.
# La 0-tupla (por ejemplo la tupla vacía) se representa por <math>\varnothing</math>.
# Si ''x'' es una ''n''-tupla entonces <math>\,\{\{a\}, \{a, x\}\}</math> es una (''n'' + 1)-tupla.
# Si ''x'' es una ''n''-tupla entonces <math>\,\{\{a\}, \{a, x\}\}</math> es una (''n'' + 1)-tupla.
Línea 32: Línea 65:
= \{\{1\},\{1,\{\{2\},\{2,\{\{2\},\{2,\varnothing\}\}\}\}\}\}</math>
= \{\{1\},\{1,\{\{2\},\{2,\{\{2\},\{2,\varnothing\}\}\}\}\}\}</math>


Existe unasimilaridadimportante aquí con la forma en que se describen objetos en algunos lenguajes informáticos, tales como [[lenguaje de programación Lisp|Lisp]] en los que generalmente se emplea un par ordenado, y se emplea esta abstracción para iterar todos los elementosdede la estructura del ''n''-tupla, para ello se procede de la siguiente forma:
Existe unasimilitudimportante aquí con la forma en que se describen objetos en algunos lenguajes informáticos, tales como [[lenguaje de programación Lisp|Lisp]] en los que generalmente se emplea un par ordenado, y se emplea esta abstracción para iterar todos los elementos de la estructura del ''n''-tupla, para ello se procede de la siguiente forma:
# Un símbolo especial, tal y como ''NIL'' representa a una lista vacía
# Un símbolo especial, tal y como ''NIL'' representa a una lista vacía
# Si ''X'' es una lista y ''A'' es un valor arbitrario, entonces el par (''A'', ''X'')respresentauna lista con la ''cabecera'' (es decir el primer elemento) ''A'' y la ''cola'' (es decir el resto de la estructura) ''X''.
# Si ''X'' es una lista y ''A'' es un valor arbitrario, entonces el par (''A'', ''X'')representauna lista con la ''cabecera'' (es decir el primer elemento) ''A'' y la ''cola'' (es decir el resto de la estructura) ''X''.


== Usos ==
== Usos ==

=== Ciencias de la computación ===
=== Ciencias de la computación ===
En las [[ciencias de la computación]] una ''tupla'' puede tener dos significados distintos;Generalmente en los lenguajes de [[programación funcional]] y en otros [[lenguaje de programación|lenguajes de programación]], una tupla es un objeto que bien puede tener datos o diversos objetos, de forma similar a una tupla definida matemáticamente.


Una definición más formal del anterior párrafo sería:''<u>Conjunto de elementos de distinto tipo que se guardan de forma consecutiva en memoria</u>''.
En las [[ciencias de la computación]] una ''tupla'' puede tener dos significados distintos.Generalmente en los lenguajes de [[programación funcional]] y en otros [[lenguaje de programación|lenguajes de programación]], una tupla es un objeto que bien puede tener datos o diversos objetos, de forma similar a una tupla definida matemáticamente.Un objeto de este tipo es conocido también como '''registro''' (o ''record'' en inglés).


En algunos lenguajes y especialmente en la teoría de [[bases de datos]], una tupla se define como una función finita que ''mapea'' (asocia unívocamente) los nombres con algunos valores;Su propósito es el mismo que se definió en las matemáticas.<blockquote>Un pequeño ejemplo puede ilustrar esto:
Una definición más formal del anterior párrafo sería: Conjunto de elementos de distinto tipo que se guardan de forma consecutiva en memoria.


*( jugador: "Luis", puntuación: 25 )
En algunos lenguajes y especialmente en la teoría de [[bases de datos]], una tupla se define como una función finita que ''mapea'' (asocia unívocamente) los nombres con algunos valores.Su propósito es el mismo que se definió en las matemáticas.


En este caso se trata de una función que mapea el campo "jugador" con la cadena "Luis" y el campo "puntuación" al número entero 25.
Un pequeño ejemplo puede ilustrar esto:
:( jugador:"Luis", puntuación:25 )


En este caso se trata de una función que mapea el campo "jugador" con la cadena "Luis" y el campo "puntuación" al número entero 25.Es de notar que el orden de los componentes no es relevante, de esta forma la misma tupla puede serre-escritacomo:( puntuación: 25, jugador: "Luis" ). En un modelo relacional tal y como se define en las tuplas, se suele representar una proposición simple, en este caso existe un jugador con el nombre "Luis" y que posee una puntuación de 25.
Es de notar que el orden de los componentes no es relevante, de esta forma la misma tupla puede serreescritacomo:


* ( puntuación: 25, jugador: "Luis" ).
En los lenguajes de programación las tuplas se suelen usar para formar estructuras de datos.Por ejemplo, lo siguiente podría ser una definición de una estructura de datos para una [[Lista (estructura de datos)|lista enlazada]]:
</blockquote>En un modelo relacional tal y como se define en las tuplas, se suele representar una proposición simple, en este caso existe un jugador con el nombre "Luis" y que posee una puntuación de 25.


En los lenguajes de programación las tuplas se suelen usar para formar estructuras de datos;Por ejemplo, lo siguiente podría ser una definición de una[[estructura de datos]]para una [[Lista (estructura de datos)|lista enlazada]]:<blockquote>( value: 16, previous-node: 1174782, next-node: 1174791 )</blockquote>
:( value: 16, previous-node: 1174782, next-node: 1174791 )


=== Lenguajes de marcado ===
=== Lenguajes de marcado ===

Se suele emplear las ''tuplas'' en la definición de ciertos elementos en los [[lenguaje de marcado|lenguajes de marcado]], tales como [[XML]]. En particular forma parte muy importante en parte del diseño de [[Taxonomía]]s en el lenguaje [[XBRL]] para describir informes financieros.
Se suele emplear las ''tuplas'' en la definición de ciertos elementos en los [[lenguaje de marcado|lenguajes de marcado]], tales como [[XML]]. En particular forma parte muy importante en parte del diseño de [[Taxonomía]]s en el lenguaje [[XBRL]] para describir informes financieros.


=== Cálculo relacional ===
=== Cálculo relacional ===

Las tuplas encuentran cabida en el estudio teórico de las [[base de datos|bases de datos]] sobre todo en el campo del [[cálculo relacional]] ya que proporcionan una notación básica para formular la definición de la relación en términos de las relaciones de la base de datos. En el cálculo relacional se emplea el cálculo orientado a tuplas, frente al orientado a dominio.
Las tuplas encuentran cabida en el estudio teórico de las [[base de datos|bases de datos]] sobre todo en el campo del [[cálculo relacional]] ya que proporcionan una notación básica para formular la definición de la relación en términos de las relaciones de la base de datos. En el cálculo relacional se emplea el cálculo orientado a tuplas, frente al orientado a dominio.
Se emplea muy a menudo en la definición a gran nivel de las definiciones de los pares [[atributo (informática)|atributo]]-[[valor (informática)|valor]].
Se emplea muy a menudo en la definición a gran nivel de las definiciones de los pares [[atributo (informática)|atributo]]-[[valor (informática)|valor]].


== Véase también ==
== Véase también ==

* [[Producto cartesiano]]
* [[Producto cartesiano]]
* [[Lenguaje formal]]
* [[Lenguaje formal]]
Línea 72: Línea 102:
== Referencias ==
== Referencias ==
{{listaref}}
{{listaref}}

{{Control de autoridades}}


[[Categoría:Teoría de conjuntos]]
[[Categoría:Teoría de conjuntos]]
[[Categoría:Bases de datos]]
[[Categoría:Bases de datos]]
[[Categoría:Sistemas de coordenadas]]
[[Categoría:Sistemas de coordenadas]]
[[Categoría:Notación matemática]]

Revisión actual - 03:40 8 mar 2024

Enmatemáticas,unatupla o uplaes una lista (secuencia) ordenada y finita de elementos.

Los matemáticos suelen escribir tuplas enumerando los elementos entreparéntesis"()" y separados porcomas;por ejemplo, (2, 7, 4, 1, 7) denota una tupla de 5.

A veces se utilizan otros símbolos para rodear los elementos, comocorchetes"[]" ocorchetes angulares"⟨⟩". Lasllaves"{}" se utilizan para especificarmatricesen 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 losvectores.

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 contipos de datosalgebraicos, coincidencia de patrones y asignación de des-estructuració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 tuplas ordenadas y tipos de registros desordenados en una única construcción, como en las estructurasCy los registrosHaskell.

Las bases de datos relacionales pueden identificar formalmente susfilas (registros)como tuplas.

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

Origen del concepto[editar]

El términotuplase generó sencillamente de una generalización de la secuencia siguiente:dupla,tripla,cuádrupla,quíntupla,...n-tupla.

  • Una tupla de longitudnse describe generalmente como unan-tupla.
  • Una 2-tupla, por ejemplo, se denomina unparodupla;
  • una 3-tupla unatriplaotripleta(en Hispanoamérica también se usaternaotríada).

El prefijonpuede ser por generalización cualquier número entero positivo; se puede, por ejemplo, denominar uncuaterniónmediante la representación de una 4-tupla, y continuar generando nombres sucesivamente, tales como unaoctupla,pero muchos matemáticos prefieren la denominación rápida y sencilla de escribir una "8-tupla" incluso si se pronunciara como "octupla".

Aunque es un término utilizado habitualmente dentro de la matemática y la programación,[1]​ la palabra «tupla» no está en el diccionario de la Real Academia Española, ni como sufijo ni como término independiente.[2]

Definiciones formales[editar]

Las principales propiedades que distinguen una tupla de, por ejemplo, unconjunto,son que en dicha tupla:

  1. Un objeto puede contener internamente (por agregación) a otros objetos.
  2. Los objetos aparecen obligatoriamente representados en un orden dado.

Es de notar que la primera de las características distingue de lo que se denomina unmulticonjuntoy la segunda de los que se denomina unconjunto ordenado.Esto se puede formalizar dando la siguiente regla de identidad para dosn-tuplas:

Otra forma de formalizar tuplas es medianteasociación biyectivaentre la definición de una tupla y una construcción más primitiva en lateoría de conjuntostal y comopares ordenados.Por ejemplo, unan-tupla (conn> 2) se puede definir como unpar ordenadode su primera entrada y (n−1)-tupla que contenga el resto de las entradas, de tal forma que:

Empleando la definición más corriente dentro de la teoría de conjuntos para unpar ordenadoy dejando que elconjunto vacíorepresente la tupla vacía, se puede obtener un resultado correcto empleando una definición porinductiva:

  1. La 0-tupla (por ejemplo la tupla vacía) se representa por.
  2. Sixes unan-tupla entonceses una (n+ 1)-tupla.

Empleando esta definición, la 3-tuplapodría ser:

Existe una similitud importante aquí con la forma en que se describen objetos en algunos lenguajes informáticos, tales comoLispen los que generalmente se emplea un par ordenado, y se emplea esta abstracción para iterar todos los elementos de la estructura deln-tupla, para ello se procede de la siguiente forma:

  1. Un símbolo especial, tal y comoNILrepresenta a una lista vacía
  2. SiXes una lista yAes un valor arbitrario, entonces el par (A,X) representa una lista con lacabecera(es decir el primer elemento)Ay lacola(es decir el resto de la estructura)X.

Usos[editar]

Ciencias de la computación[editar]

En lasciencias de la computaciónunatuplapuede tener dos significados distintos; Generalmente en los lenguajes deprogramación funcionaly en otroslenguajes de programación,una tupla es un objeto que bien puede tener datos o diversos objetos, de forma similar a una tupla definida matemáticamente.

Una definición más formal del anterior párrafo sería:Conjunto de elementos de distinto tipo que se guardan de forma consecutiva en memoria.

En algunos lenguajes y especialmente en la teoría debases de datos,una tupla se define como una función finita quemapea(asocia unívocamente) los nombres con algunos valores; Su propósito es el mismo que se definió en las matemáticas.

Un pequeño ejemplo puede ilustrar esto:

  • ( jugador: "Luis", puntuación: 25 )

En este caso se trata de una función que mapea el campo "jugador" con la cadena "Luis" y el campo "puntuación" al número entero 25.

Es de notar que el orden de los componentes no es relevante, de esta forma la misma tupla puede ser reescrita como:

  • ( puntuación: 25, jugador: "Luis" ).

En un modelo relacional tal y como se define en las tuplas, se suele representar una proposición simple, en este caso existe un jugador con el nombre "Luis" y que posee una puntuación de 25. En los lenguajes de programación las tuplas se suelen usar para formar estructuras de datos; Por ejemplo, lo siguiente podría ser una definición de unaestructura de datospara unalista enlazada:

( value: 16, previous-node: 1174782, next-node: 1174791 )

Lenguajes de marcado[editar]

Se suele emplear lastuplasen la definición de ciertos elementos en loslenguajes de marcado,tales comoXML.En particular forma parte muy importante en parte del diseño deTaxonomíasen el lenguajeXBRLpara describir informes financieros.

Cálculo relacional[editar]

Las tuplas encuentran cabida en el estudio teórico de lasbases de datossobre todo en el campo delcálculo relacionalya que proporcionan una notación básica para formular la definición de la relación en términos de las relaciones de la base de datos. En el cálculo relacional se emplea el cálculo orientado a tuplas, frente al orientado a dominio. Se emplea muy a menudo en la definición a gran nivel de las definiciones de los paresatributo-valor.

Véase también[editar]

Referencias[editar]

  1. «Tuplas»(html).Universidad Técnica Federico Santa María.Archivado desdeel originalel 27 de agosto de 2012.Consultado el 6 de julio de 2022.«Una tupla es una secuencia de valores agrupados. Una tupla sirve para agrupar, como si fueran un único valor, varios valores que, por su naturaleza, deben ir juntos.»
  2. ASALE, RAE-.«Diccionario de la lengua española | Edición del Tricentenario».«Diccionario de la lengua española» - Edición del Tricentenario.Consultado el 25 de abril de 2020.