Las identidades combinatorias expresan el mismo conteo de dos maneras diferentes y pueden demostrarse interpretando ambos lados como una cantidad de configuraciones.
Una identidad combinatoria es una igualdad entre expresiones que representan la misma cantidad. La demostración no depende solamente de transformar símbolos: también puede consistir en contar un conjunto de objetos desde dos puntos de vista.
Este enfoque se conoce como doble conteo. Si el lado izquierdo y el lado derecho cuentan el mismo conjunto de resultados, deben ser iguales.
La identidad más básica es:
El lado izquierdo elige los k elementos que forman parte del grupo. El lado derecho elige los n-k elementos que quedan fuera. Ambas decisiones describen exactamente el mismo subconjunto.
Para demostrarla, fijamos un elemento especial. Una selección de k elementos:
Los dos casos son excluyentes y cubren todas las selecciones.
Elige una identidad y sus parámetros para comparar numéricamente ambos lados.
La suma de todos los coeficientes de una fila es:
El lado izquierdo agrupa los subconjuntos según su tamaño. El lado derecho cuenta cada elemento con dos opciones: estar dentro o fuera del subconjunto.
Una suma de coeficientes en diagonal cumple:
Esta identidad se observa en las diagonales del triángulo de Pascal y permite reemplazar una suma de varios términos por un único coeficiente.
Una identidad importante para combinar dos grupos es:
Para formar un grupo de r elementos a partir de dos conjuntos, podemos elegir k del primer conjunto y r-k del segundo. Sumamos todas las posibilidades para k.
Supongamos que tenemos 5 elementos y queremos elegir 2. Podemos contarlos directamente con C(5,2), o clasificarlos según incluya o no un elemento especial:
Ambos métodos cuentan las mismas 10 selecciones.
Podemos verificar la identidad de Pascal calculando sus dos lados.
function binomial(n, k) {
if (k < 0 || k > n) return 0;
k = Math.min(k, n - k);
let valor = 1;
for (let indice = 1; indice <= k; indice += 1) {
valor = valor * (n - indice + 1) / indice;
}
return valor;
}
const n = 8;
const k = 3;
const izquierda = binomial(n, k);
const derecha = binomial(n - 1, k - 1) + binomial(n - 1, k);
console.log(izquierda === derecha);
Una identidad puede convertirse en un algoritmo alternativo. Por ejemplo, la simetría permite reemplazar k por n-k y elegir el menor de los dos valores.
function indicePequeño(n, k) {
return Math.min(k, n - k);
}
console.log(indicePequeño(100, 97)); // Conviene calcular con 3
console.log(indicePequeño(100, 3)); // Ya es pequeño
El resultado matemático no cambia, pero el cálculo puede requerir menos operaciones.
Las identidades combinatorias muestran que un mismo conjunto puede contarse mediante estrategias diferentes. Esta forma de razonar permite demostrar fórmulas, descubrir relaciones y diseñar cálculos más eficientes.
En el próximo tema estudiaremos el principio del palomar, una herramienta para demostrar que ciertas coincidencias son inevitables.