3. Conjuntos y pares ordenados

Los conjuntos agrupan elementos y los pares ordenados permiten expresar vínculos precisos entre ellos. Ambos conceptos son la base para construir relaciones y funciones discretas.

3.1 Introducción

Antes de estudiar relaciones discretas, necesitamos comprender dos ideas básicas: conjunto y par ordenado. Un conjunto reúne elementos. Un par ordenado conecta dos elementos respetando el orden en que aparecen.

En programación, estas ideas se ven en listas, arreglos, mapas, registros, tablas, claves, valores y estructuras que relacionan datos entre sí.

3.2 Qué es un conjunto

Un conjunto es una colección de elementos bien definidos. Los elementos pueden ser números, textos, objetos, identificadores, estados o cualquier dato que podamos distinguir.

A = {1, 2, 3, 4} B = {Ana, Luis, Marta} C = {pendiente, aprobado, rechazado}

El orden de escritura no cambia el conjunto. Por ejemplo, {1, 2, 3} y {3, 2, 1} representan el mismo conjunto.

3.3 Elementos y pertenencia

Cuando un valor forma parte de un conjunto, decimos que pertenece a ese conjunto. Si no forma parte, decimos que no pertenece.

Si A = {1, 2, 3} 1 pertenece a A 5 no pertenece a A

En código, esta idea suele aparecer cuando verificamos si un dato está incluido en una colección.

const estadosValidos = new Set(["pendiente", "aprobado", "rechazado"]);

console.log(estadosValidos.has("aprobado"));
console.log(estadosValidos.has("cancelado"));

3.4 Conjuntos en JavaScript

JavaScript ofrece la estructura Set para representar conjuntos. Un Set no almacena elementos repetidos.

const numeros = new Set([1, 2, 2, 3, 3, 3]);

console.log(numeros);
console.log(numeros.size);

Aunque el arreglo inicial contiene valores repetidos, el conjunto conserva solo una aparición de cada elemento.

3.5 Operaciones básicas con conjuntos

Al trabajar con conjuntos, algunas operaciones frecuentes son pertenencia, unión, intersección y diferencia.

Operación Significado Ejemplo
Pertenencia Verificar si un elemento está en un conjunto. 2 pertenece a {1, 2, 3}
Unión Combinar elementos de dos conjuntos. {1, 2} unido con {2, 3} da {1, 2, 3}
Intersección Tomar los elementos comunes. {1, 2} y {2, 3} comparten {2}
Diferencia Tomar elementos que están en un conjunto y no en otro. {1, 2, 3} menos {2} da {1, 3}

3.6 Qué es un par ordenado

Un par ordenado agrupa dos elementos en una posición específica. Se escribe como (a, b), donde a es el primer componente y b es el segundo componente.

(usuario, permiso) (producto, categoría) (origen, destino) (clave, valor)

El orden importa. El par (Ana, Programación) no significa lo mismo que (Programación, Ana).

3.7 Pares ordenados y relaciones

Una relación discreta puede representarse como un conjunto de pares ordenados. Cada par indica que el primer elemento está relacionado con el segundo.

R = {(Ana, leer), (Ana, editar), (Luis, leer)}

Esta relación puede interpretarse como permisos: Ana puede leer y editar; Luis puede leer.

3.8 Pares ordenados en JavaScript

En JavaScript, un par ordenado puede representarse como un arreglo de dos elementos. Una relación puede representarse como un arreglo de pares.

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

for (const [usuario, permiso] of permisos) {
  console.log(`${usuario} tiene permiso para ${permiso}`);
}

3.9 Diferencia entre conjunto y par ordenado

Concepto Características Ejemplo
Conjunto Agrupa elementos sin repetirlos y sin depender del orden. {rojo, verde, azul}
Par ordenado Agrupa dos componentes donde el orden sí importa. (origen, destino)
Relación Es un conjunto de pares ordenados. {(A, B), (B, C)}

3.10 Ejemplo: relación entre productos y categorías

Supongamos que una tienda necesita relacionar productos con categorías. Podemos usar pares ordenados para representar esa relación.

const productoCategoria = [
  ["teclado", "periféricos"],
  ["monitor", "pantallas"],
  ["mouse", "periféricos"]
];

const perifericos = productoCategoria
  .filter(([, categoria]) => categoria === "periféricos")
  .map(([producto]) => producto);

console.log(perifericos);

La relación permite consultar todos los productos asociados con una misma categoría.

3.11 Qué debes recordar de este tema

  • Un conjunto es una colección de elementos bien definidos.
  • Un elemento puede pertenecer o no pertenecer a un conjunto.
  • Un par ordenado tiene dos componentes y el orden importa.
  • Una relación discreta puede representarse como un conjunto de pares ordenados.
  • En JavaScript, Set permite trabajar con conjuntos.
  • En JavaScript, un arreglo de dos posiciones puede representar un par ordenado.

3.12 Conclusión

Los conjuntos y pares ordenados son herramientas básicas para construir relaciones discretas. Los conjuntos indican de dónde salen los elementos y los pares ordenados indican cómo se vinculan.

En el próximo tema estudiaremos el producto cartesiano y veremos cómo se generan todas las combinaciones posibles entre dos conjuntos.