20. Pares ordenados y tuplas

Los pares ordenados y las tuplas permiten agrupar valores donde la posición importa. Son esenciales para representar coordenadas, registros, relaciones, combinaciones y datos estructurados.

20.1 Introducción

En un conjunto, el orden de los elementos no importa. En cambio, en un par ordenado o en una tupla, la posición de cada componente sí es importante.

Estos conceptos son necesarios para entender producto cartesiano, relaciones, funciones, coordenadas, filas de una tabla y estructuras de datos usadas en programación.

20.2 Qué es un par ordenado

Un par ordenado es una estructura con dos componentes, escritas en un orden específico.

(a, b)

El primer componente es a y el segundo componente es b. Cambiar el orden cambia el par.

20.3 Igualdad de pares ordenados

Dos pares ordenados son iguales si sus primeros componentes son iguales y sus segundos componentes también son iguales.

(a, b) = (c, d) si y solo si a = c y b = d

Por eso, en general (a, b) no es igual a (b, a).

20.4 Orden en pares y conjuntos

La diferencia entre conjunto y par ordenado es fundamental.

Expresión Tipo ¿Importa el orden?
{a, b} Conjunto No
{b, a} Conjunto No; es el mismo conjunto que {a, b}
(a, b) Par ordenado
(b, a) Par ordenado Sí; normalmente es distinto de (a, b)

20.5 Pares ordenados y producto cartesiano

El producto cartesiano de dos conjuntos se forma con pares ordenados.

A = {1, 2} B = {x, y} A × B = {(1, x), (1, y), (2, x), (2, y)}

En cada par, el primer elemento viene de A y el segundo viene de B.

20.6 Pares ordenados como coordenadas

En geometría, un punto del plano se representa mediante un par ordenado.

(x, y)

El primer valor indica la posición horizontal y el segundo valor indica la posición vertical. Por eso, (2, 5) y (5, 2) representan puntos diferentes.

20.7 Qué es una tupla

Una tupla es una estructura ordenada con una cantidad fija de componentes. Un par ordenado es una tupla de dos componentes.

(a, b, c)

La expresión anterior es una terna o 3-tupla. Tiene tres componentes y cada posición tiene significado.

20.8 Aridad de una tupla

La aridad indica la cantidad de componentes de una tupla.

Tupla Nombre habitual Aridad
(a) 1-tupla 1
(a, b) Par ordenado 2
(a, b, c) Terna 3
(a, b, c, d) 4-tupla 4

20.9 Igualdad de tuplas

Dos tuplas son iguales si tienen la misma aridad y cada componente coincide en la misma posición.

(a, b, c) = (x, y, z) si y solo si a = x, b = y y c = z

La posición es parte de la información.

20.10 Tuplas y registros

Una fila de una tabla puede pensarse como una tupla. Cada posición o columna representa un dato con significado.

(id, nombre, edad) (1, Ana, 25)

En bases de datos, una relación suele representarse como un conjunto de tuplas.

20.11 Tuplas y relaciones

Una relación binaria está formada por pares ordenados. Una relación ternaria está formada por ternas. En general, una relación puede estar formada por tuplas de cualquier aridad fija.

R = {(usuario1, permisoLeer), (usuario2, permisoEditar)}

Esta relación vincula usuarios con permisos mediante pares ordenados.

20.12 Representación en JavaScript

JavaScript no tiene una estructura especial llamada tupla en su sintaxis estándar, pero podemos representar pares y tuplas con arreglos.

const punto = [2, 5];
const usuario = [1, "Ana", 25];

console.log(punto[0]);
console.log(punto[1]);
console.log(usuario);

La posición dentro del arreglo indica el significado de cada componente.

20.13 Pares ordenados generados desde conjuntos

Podemos generar pares ordenados como resultado de un producto cartesiano.

function productoCartesiano(a, b) {
  return a.flatMap(elementoA =>
    b.map(elementoB => [elementoA, elementoB])
  );
}

const usuarios = ["Ana", "Luis"];
const permisos = ["leer", "editar"];

console.log(productoCartesiano(usuarios, permisos));

Cada resultado es un par ordenado representado como arreglo de dos posiciones.

20.14 Objetos frente a tuplas en JavaScript

Cuando el significado de cada posición no es evidente, un objeto puede ser más claro que una tupla representada como arreglo.

const tuplaUsuario = [1, "Ana", 25];

const objetoUsuario = {
  id: 1,
  nombre: "Ana",
  edad: 25
};

console.log(tuplaUsuario[1]);
console.log(objetoUsuario.nombre);

La tupla es compacta, pero el objeto expresa mejor el significado de cada campo.

20.15 Aplicaciones prácticas

Área Uso de pares o tuplas Ejemplo
Geometría Coordenadas (x, y)
Bases de datos Filas o registros (id, nombre, estado)
Grafos Aristas dirigidas (origen, destino)
Permisos Relación usuario-permiso (usuario, permiso)
Pruebas Casos con varios parámetros (navegador, sistema, idioma)

20.16 Errores frecuentes

  • Confundir un conjunto con una tupla.
  • Creer que (a, b) siempre es igual a (b, a).
  • Comparar tuplas de distinta aridad como si pudieran ser iguales.
  • Olvidar que cada posición tiene significado.
  • Usar arreglos como tuplas en código cuando un objeto sería más claro.

20.17 Qué debes recordar de este tema

  • En un par ordenado, el orden de los componentes importa.
  • Dos pares son iguales si coinciden componente por componente.
  • Una tupla generaliza la idea de par ordenado a más componentes.
  • La aridad indica la cantidad de componentes de una tupla.
  • El producto cartesiano produce pares ordenados.
  • En JavaScript, pares y tuplas pueden representarse con arreglos, aunque a veces los objetos son más legibles.

20.18 Conclusión

Los pares ordenados y las tuplas permiten representar datos donde la posición tiene significado. Son una herramienta central para producto cartesiano, relaciones, funciones, coordenadas y estructuras de datos.

En el próximo tema estudiaremos aplicaciones del producto cartesiano.