Las permutaciones simples cuentan los ordenamientos posibles de elementos diferentes cuando se utilizan todos una sola vez.
En los temas anteriores vimos que el factorial cuenta ordenamientos de elementos distintos. Una permutación simple es cada ordenamiento posible de un conjunto de elementos diferentes, utilizando todos exactamente una vez.
El adjetivo “simple” indica que no hay elementos repetidos. Si dos elementos tienen el mismo valor, el conteo cambia y estudiaremos ese caso en el próximo tema.
Una permutación simple de n elementos es una secuencia que contiene todos los elementos del conjunto, sin repetir ninguno y respetando un orden determinado.
Las secuencias ABC y BAC contienen los mismos elementos, pero son permutaciones diferentes porque el orden cambió.
La cantidad de permutaciones simples de n elementos se calcula mediante el factorial:
El razonamiento por posiciones es:
Si tenemos 4 tareas diferentes y queremos establecer un orden para ejecutarlas, el número de ordenamientos es:
Para la primera posición hay 4 opciones. Una vez elegida, quedan 3 para la segunda, 2 para la tercera y 1 para la última.
Escribe entre 2 y 5 símbolos diferentes. La simulación calcula el factorial y muestra todos los ordenamientos cuando la cantidad es manejable.
La siguiente función genera permutaciones mediante una estrategia recursiva: elige un elemento, permuta los restantes y combina el elemento elegido con cada resultado.
function permutar(elementos) {
if (elementos.length === 0) return [[]];
const resultados = [];
for (let indice = 0; indice < elementos.length; indice += 1) {
const elegido = elementos[indice];
const restantes = elementos.filter((_, posicion) => posicion !== indice);
for (const resto of permutar(restantes)) {
resultados.push([elegido, ...resto]);
}
}
return resultados;
}
const resultado = permutar(["A", "B", "C"]);
console.log(resultado.map(permutacion => permutacion.join("")));
El caso base devuelve una lista con una permutación vacía. Ese caso permite completar correctamente el último elemento de cada recorrido.
Las permutaciones pueden representarse con un árbol de decisiones. En el primer nivel hay n ramas; en el segundo quedan n - 1; y así hasta llegar a una hoja.
El diagrama ayuda a comprender por qué aparece el factorial, aunque dibujar todas las ramas deja de ser práctico cuando n crece.
Una forma de comprobar una generación de permutaciones es comparar la cantidad producida con el factorial del número de elementos.
function factorial(n) {
let resultado = 1;
for (let valor = 2; valor <= n; valor += 1) {
resultado *= valor;
}
return resultado;
}
const elementos = ["rojo", "verde", "azul"];
console.log(`Cantidad esperada: ${factorial(elementos.length)}`);
Para 3 elementos, cualquier generador correcto debe producir exactamente 3! = 6 ordenamientos distintos.
En una permutación simple se utilizan todos los elementos y el orden importa. Si solo se utilizan algunos elementos, el problema deja de ser una permutación simple completa y se relaciona con variaciones o combinaciones.
| Situación | ¿Se usan todos? | ¿Importa el orden? | Método |
|---|---|---|---|
| Ordenar todos los elementos | Sí | Sí | Permutación simple: n! |
| Elegir algunos y ordenarlos | No | Sí | Variación sin repetición |
| Elegir algunos sin orden | No | No | Combinación sin repetición |
Si el problema impone una condición, no siempre podemos utilizar directamente n!. Por ejemplo, si A debe ocupar la primera posición, solo debemos permutar los elementos restantes.
Otras restricciones pueden exigir que dos elementos estén juntos, separados o en posiciones determinadas. En esos casos se modifica el conteo o se utilizan técnicas adicionales.
La cantidad de permutaciones indica rápidamente si es viable generar todas las soluciones o si conviene utilizar restricciones y estrategias de poda.
Las permutaciones simples describen todos los ordenamientos posibles de elementos distintos y constituyen una aplicación directa del factorial. Su estudio permite comprender cómo crecen los espacios de búsqueda y prepara el camino para analizar repeticiones, selecciones parciales y restricciones.
En el próximo tema estudiaremos las permutaciones con elementos repetidos.