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.
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.
Un par ordenado es una estructura con dos componentes, escritas en un orden específico.
El primer componente es a y el segundo componente es b. Cambiar el orden cambia el par.
Dos pares ordenados son iguales si sus primeros componentes son iguales y sus segundos componentes también son iguales.
Por eso, en general (a, b) no es igual a (b, a).
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 | Sí |
| (b, a) | Par ordenado | Sí; normalmente es distinto de (a, b) |
El producto cartesiano de dos conjuntos se forma con pares ordenados.
En cada par, el primer elemento viene de A y el segundo viene de B.
En geometría, un punto del plano se representa mediante un par ordenado.
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.
Una tupla es una estructura ordenada con una cantidad fija de componentes. Un par ordenado es una tupla de dos componentes.
La expresión anterior es una terna o 3-tupla. Tiene tres componentes y cada posición tiene significado.
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 |
Dos tuplas son iguales si tienen la misma aridad y cada componente coincide en la misma posición.
La posición es parte de la información.
Una fila de una tabla puede pensarse como una tupla. Cada posición o columna representa un dato con significado.
En bases de datos, una relación suele representarse como un conjunto de tuplas.
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.
Esta relación vincula usuarios con permisos mediante pares ordenados.
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.
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.
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.
| Á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) |
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.