El producto cartesiano combina elementos de dos conjuntos formando pares ordenados. Es la base para estudiar relaciones, funciones, coordenadas, tablas, combinaciones y estructuras de datos.
El producto cartesiano permite combinar los elementos de dos conjuntos de manera ordenada. A diferencia de la unión o la intersección, no produce simplemente elementos individuales, sino pares ordenados.
Este concepto es fundamental para construir relaciones y funciones, y también aparece en programación cuando generamos combinaciones, coordenadas, asociaciones entre datos o pares clave-valor.
Un par ordenado es una estructura formada por dos componentes, donde importa el orden.
El primer componente es a y el segundo componente es b. En general, (a, b) no es igual a (b, a).
El producto cartesiano de dos conjuntos A y B es el conjunto formado por todos los pares ordenados cuyo primer elemento pertenece a A y cuyo segundo elemento pertenece a B.
El símbolo × se lee "producto cartesiano".
Cada elemento de A se combina con cada elemento de B.
En general, A × B no es igual a B × A, porque los pares ordenados cambian de posición.
Ambos productos tienen la misma cantidad de pares, pero sus elementos no son los mismos.
Si A y B son conjuntos finitos, la cantidad de elementos de A × B es el producto de sus cardinalidades.
Si |A| = 2 y |B| = 3, entonces |A × B| = 6.
| A | B | |A| | |B| | |A × B| |
|---|---|---|---|---|
| {1, 2} | {a, b, c} | 2 | 3 | 6 |
| {HTML, CSS, JavaScript} | {básico, avanzado} | 3 | 2 | 6 |
| {leer, editar} | {permitido, denegado} | 2 | 2 | 4 |
| ∅ | {1, 2, 3} | 0 | 3 | 0 |
Si uno de los conjuntos es vacío, el producto cartesiano también es vacío.
No se pueden formar pares si falta un elemento para una de las posiciones.
El producto cartesiano puede representarse como una tabla donde las filas son elementos de A y las columnas son elementos de B.
| A \ B | x | y | z |
|---|---|---|---|
| 1 | (1, x) | (1, y) | (1, z) |
| 2 | (2, x) | (2, y) | (2, z) |
El plano cartesiano puede verse como un producto cartesiano entre conjuntos numéricos. Por ejemplo, R × R representa todos los pares ordenados de números reales.
Cada par (x, y) representa un punto del plano.
Una relación entre A y B puede definirse como un subconjunto de A × B.
Una relación podría seleccionar solo algunos de esos pares, por ejemplo {(1, a), (2, b)}.
Podemos generar el producto cartesiano con dos ciclos anidados o con métodos de arreglos.
function productoCartesiano(a, b) {
return a.flatMap(elementoA =>
b.map(elementoB => [elementoA, elementoB])
);
}
const numeros = [1, 2];
const letras = ["x", "y", "z"];
console.log(productoCartesiano(numeros, letras));
Cada par se representa como un arreglo de dos elementos.
El producto cartesiano permite combinar opciones. Por ejemplo, talles y colores de una prenda.
function productoCartesiano(a, b) {
return a.flatMap(elementoA =>
b.map(elementoB => [elementoA, elementoB])
);
}
const talles = ["S", "M", "L"];
const colores = ["negro", "blanco"];
const variantes = productoCartesiano(talles, colores);
console.log(variantes);
El resultado contiene todas las combinaciones posibles de talle y color.
El producto cartesiano puede extenderse a tres o más conjuntos. En ese caso se forman tuplas ordenadas.
Si A, B y C son finitos, la cardinalidad es |A| · |B| · |C|.
| Área | Uso del producto cartesiano | Ejemplo |
|---|---|---|
| Comercio electrónico | Generar variantes | Talles × colores |
| Bases de datos | Combinar registros | Clientes × productos |
| Grafos | Definir posibles pares de nodos | Origen × destino |
| Pruebas | Generar combinaciones de casos | Navegadores × sistemas operativos |
| Relaciones | Definir pares posibles | Usuario × permiso |
El producto cartesiano permite construir combinaciones ordenadas entre elementos de conjuntos. Es un puente fundamental entre teoría de conjuntos, relaciones, funciones, coordenadas y estructuras usadas en programación.
En el próximo tema estudiaremos pares ordenados y tuplas.