🧮 Computational Mathematics

Inicio · Parte 04 — Matemática discreta para computación

089 — Combinaciones

intermedio clase 9 de 20 4 horas demostración combinations_demo

Una combinación cuenta selecciones donde el orden no importa; su simetría refleja que elegir k es descartar n−k.

Fórmulas

C(n,k) = n!/(k!(n−k)!)
C(n,k) = C(n,n−k)
Σₖ C(n,k) = 2ⁿ

Desarrollo

Una combinación es una permutación a la que se le ha quitado el orden: hay k! ordenaciones de cada selección, así que C(n,k) = P(n,k)/k!. Esa deducción es la forma correcta de recordar la fórmula, en lugar de memorizarla.

La simetría C(n,k) = C(n,n−k) tiene una lectura inmediata: elegir k elementos es lo mismo que decidir cuáles n−k se descartan. Es un ejemplo de biyección como técnica de demostración: dos conteos coinciden porque existe una correspondencia uno a uno entre lo que cuentan.

La suma de toda una fila del triángulo de Pascal es 2ⁿ, y también tiene lectura combinatoria: sumar sobre todos los tamaños posibles de subconjunto es contar todos los subconjuntos, que son 2ⁿ. Este tipo de argumentos —contar lo mismo de dos formas— es la herramienta central de la combinatoria.

En probabilidad, C(n,k) es el coeficiente de la distribución binomial (clase 192): el número de secuencias con exactamente k éxitos en n ensayos. Y en machine learning aparece al contar particiones de un conjunto de datos y al calcular el número de comparaciones en un test estadístico múltiple.

Ejemplo trabajado

Combinaciones de 3 entre 5.

elementos: A B C D E

C(5,3) = 5!/(3!·2!) = 120/(6·2) = 10
  ABC ABD ABE ACD ACE ADE BCD BCE BDE CDE

Simetría: C(5,3) = C(5,2) = 10          ✓
  (elegir 3 ≡ descartar 2)

Fila de Pascal para n=5:
  C(5,0..5) = 1, 5, 10, 10, 5, 1
  suma = 32 = 2⁵                        ✓

Qué calcula el laboratorio

Combinaciones: el orden no importa.

python classes/part-04-matematica-discreta-para-computacion/089-combinaciones/lab.py
compmath run 089

Salidas del laboratorio (7)

Muestra de la ejecución real

{
  "elementos": [
    "A",
    "B",
    "C",
    "D",
    "E"
  ],
  "C(5,3)": 10,
  "math.comb": 10,
  "simetria_C(5,3)=C(5,2)": true,
  "todas": [
    "ABC",
    "ABD",
    "ABE",
    "ACD",
    "ACE",
    "ADE",
    "BCD",
    "BCE",
    "BDE",
    "CDE"
  ],
  "suma_fila_de_pascal": 32
}

Errores comunes

Dónde se usa

Distribución binomial, número de comparaciones en tests múltiples, muestreo de subconjuntos y conteo de particiones en validación cruzada.

Idea rectora de la parte

La aritmética modular es la base de hashing, criptografía y checksums.

Error a evitar

Asumir que un grafo dirigido es acíclico sin verificarlo.

Conexión con IA

Los grafos de cómputo, la búsqueda en árbol y las GNN son estructuras discretas; el conteo sostiene la probabilidad que después usa todo modelo generativo.

Bibliografía de la clase

Archivos de la clase