Una calculadora de factorial calcula n! — el producto de todos los enteros positivos desde 1 hasta n. La función aparece en combinatoria, probabilidad, cálculo (series de Taylor) y estadística, y crece más rápido que cualquier polinomio o exponencial simple. Esta calculadora acepta enteros de 0 a 170 con precisión estándar; para n >170 el resultado supera el rango IEEE-754 (~1,8 × 10³⁰⁸), así que con entradas mayores se usa aritmética BigInt para conservar todos los dígitos. Cada cálculo muestra el valor final y la expansión paso a paso, útil para revisar tareas, montar problemas de combinatoria y resolver probabilidad.
¿Qué es un Factorial?
Un factorial es el producto de todos los enteros positivos desde 1 hasta un entero no negativo n. Se escribe n! y se lee "n factorial" — la notación con signo de admiración fue introducida por el matemático francés Christian Kramp en 1808 y se mantuvo por ser concisa e inconfundible. Por convención 0! = 1; este es el producto vacío, el equivalente multiplicativo de que la suma vacía sea 0, y es necesario para que fórmulas como C(n,0) = 1 y la serie de Taylor de e^x funcionen correctamente en n = 0.
¿Cómo calcular el Factorial?
Para calcular el factorial a mano:
- Elige el entero no negativo n cuyo factorial quieres.
- Lista los enteros de 1 a n.
- Multiplícalos en orden: 1 × 2 × 3 × ... × n. La multiplicación iterativa de izquierda a derecha es la más sencilla y evita una pila de recursión profunda.
- El producto final es n!.
- Para verificar, esta calculadora también muestra la expansión completa para que revises cada paso.
La fórmula del Factorial:
n! = n × (n-1) × (n-2) × ... × 2 × 1, con el caso base 0! = 1.
Ejemplo
Para calcular 5!:
5! = 5 × 4 × 3 × 2 × 1 = 120
Por lo tanto, 5! = 120.
Cambia n en el campo de entrada para calcular cualquier otro factorial; la expansión bajo el resultado se actualizará en consecuencia.
Casos especiales:
- 0! = 1 (por definición, el producto vacío)
- 1! = 1
- Los factoriales crecen muy rápido: 10! = 3.628.800; 20! ≈ 2,43 × 10¹⁸; 70! ≈ 1,2 × 10¹⁰⁰
Aplicaciones de los Factoriales:
- Permutaciones: n! ordenamientos de n objetos distintos
- Combinaciones: C(n,k) = n! / (k! × (n−k)!)
- Probabilidad y estadística (coeficientes multinomiales, valores esperados)
- Expansiones en serie de Taylor: e^x = Σ xⁿ / n!
- Aproximación de Stirling para factoriales grandes: n! ≈ √(2πn) × (n/e)ⁿ
Preguntas Frecuentes
Tres argumentos independientes apuntan todos a 0! = 1, por eso los matemáticos fijaron esta convención en lugar de dejar 0! sin definir. (1) Producto vacío: en álgebra, multiplicar cero números entre sí da el elemento neutro multiplicativo, que es 1 — la misma lógica que hace x⁰ = 1 para cualquier x no nulo. (2) Combinatorio: C(n,0) cuenta de cuántas formas se puede no elegir nada de n objetos, que es exactamente 1 (la selección vacía). La fórmula C(n,0) = n! / (0! × n!) solo da 1 si 0! = 1. (3) Consistencia recursiva: la regla n! = n × (n−1)! debe valer en n = 1, dando 1! = 1 × 0!, así que 0! debe ser 1 para que 1! = 1 salga bien. La misma lógica se extiende a la función gamma Γ(n+1) = n!, donde Γ(1) = 1 por integración directa. Por tanto 0! = 1 no es arbitrario — es el único valor que mantiene toda la maquinaria consistente.
Porque 170! ≈ 7,257 × 10³⁰⁶ es el mayor factorial que cabe en un número de coma flotante de doble precisión IEEE-754 estándar, cuyo máximo ronda 1,798 × 10³⁰⁸. 171! ≈ 1,241 × 10³⁰⁹ se desborda a Infinity en JavaScript, Excel y la mayoría de calculadoras. Para manejar n mayores, el cálculo cambia a BigInt — un tipo entero de precisión arbitraria integrado en JavaScript moderno — que puede calcular cualquier factorial sujeto solo a memoria y tiempo. 1000! tiene 2568 dígitos y tarda una fracción de segundo; 100000! tiene 456.574 dígitos y unos segundos. Para factoriales muy grandes normalmente no necesitas el valor exacto — quieres la aproximación de Stirling log(n!) ≈ n log n − n + 0,5 log(2πn), precisa al fracción de porcentaje incluso para n moderados.
La aproximación de Stirling dice que n! ≈ √(2πn) × (n/e)ⁿ para n grande. El error es inferior al 1% para n ≥ 10 e inferior al 0,1% para n ≥ 100, así que es esencialmente exacta para cualquier uso donde no necesites cada dígito. La versión logarítmica, log(n!) ≈ n log n − n + 0,5 log(2πn), es la que realmente se usa en la práctica porque la exponencial cruda se desborda tan rápido como el propio n! — pero el logaritmo no. La mecánica estadística, la teoría de la información y el método del punto de silla en análisis complejo se apoyan en la forma logarítmica para estimar la entropía de un sistema, el comportamiento asintótico de coeficientes binomiales y el teorema central del límite. James Stirling lo publicó en su Methodus Differentialis de 1730; una versión más precisa la halló antes de Moivre. Refinarla a más precisión da la serie de Stirling, asintótica, útil en análisis numérico.
Los tres cuentan arreglos, pero difieren en qué consideran distinto. El factorial n! cuenta el número de ordenamientos de n objetos distintos — ABCDE tiene 5! = 120 ordenamientos. La permutación P(n,k) = n! / (n−k)! cuenta arreglos ordenados de k objetos elegidos entre n — P(5,2) = 5!/3! = 20 pares ordenados, donde AB y BA se cuentan por separado. La combinación C(n,k) = n! / (k! × (n−k)!) cuenta selecciones no ordenadas de k objetos entre n — C(5,2) = 10 porque ahora AB y BA son lo mismo. Regla práctica: si el orden importa, usa una permutación; si no importa, usa una combinación. El factorial es el caso especial k = n. Los tres se reducen a expresiones limpias con factoriales, por eso la calculadora de factorial es la base de toda la combinatoria.
Sí — están definidos por la función gamma Γ, que extiende el factorial a casi todos los reales y complejos. La relación exacta es n! = Γ(n+1), de modo que Γ(1) = 0! = 1, Γ(2) = 1! = 1, Γ(3) = 2! = 2, etc. Para argumentos no enteros aparecen valores útiles como Γ(0,5) = √π, equivalente a decir que (−0,5)! = √π ≈ 1,7725. Los valores semienteros aparecen por toda la física — el volumen de una esfera n-dimensional, la distribución chi-cuadrado, la normalización de la velocidad de Maxwell-Boltzmann. Los enteros negativos, en cambio, siguen sin estar definidos: Γ tiene polos en 0, −1, −2, ..., por lo que (−1)!, (−2)!, etc. son infinitos. Esta calculadora devuelve un error con entrada entera negativa en lugar de dar un valor engañoso. Si necesitas valores de Γ, una herramienta dedicada a la función gamma o un lenguaje con una rutina tgamma es la opción correcta.
Los ceros finales de n! provienen de los factores 10 del producto, y cada 10 necesita un 2 y un 5. La cantidad de 2 en n! siempre supera a la cantidad de 5, así que el número de ceros finales equivale al total de factores 5 en la factorización de n!. La fórmula de Legendre lo da exactamente: Z(n) = ⌊n/5⌋ + ⌊n/25⌋ + ⌊n/125⌋ + ⌊n/625⌋ + ... hasta que los términos se anulen. Ejemplo: 100! tiene ⌊100/5⌋ + ⌊100/25⌋ = 20 + 4 = 24 ceros finales; 1000! tiene 200 + 40 + 8 + 1 = 249 ceros finales. Es un problema clásico de matemática competitiva, y la identidad de Legendre da la respuesta en O(log n) — muchísimo más rápido que calcular el factorial mismo. La misma técnica vale en cualquier base: para base b, cuenta la multiplicidad de cada factor primo de b en n! y toma el mínimo tras escalar.
Iterativo casi siempre es mejor para n!. La definición recursiva n! = n × (n−1)! se lee de forma natural y es el ejemplo de manual para enseñar recursión, pero en la práctica reserva un marco de pila por entero hasta el caso base. Los motores JavaScript suelen tener límites de pila entre 10.000 y 100.000 marcos antes de lanzar RangeError: Maximum call stack size exceeded, y Python por defecto trae 1.000. Un bucle iterativo — for (let i = 2, r = 1n; i <= n; i++) r *= BigInt(i) — usa pila constante y corre más rápido al no haber sobrecarga de llamada por paso. Algunos lenguajes (Scheme, Scala en casos especiales) implementan optimización de llamadas en cola y pueden compilar una factorial recursiva bien escrita como un bucle, pero JavaScript y Python no. Para aprender, escribe la versión recursiva una vez y siente la estructura; para producción o cálculo en el navegador como esta calculadora, usa el bucle.
En más sitios de los que uno espera. (1) Probabilidad: paradoja del cumpleaños, conteo de manos de póker, probabilidades de lotería — todas construidas sobre combinaciones, que son razones de factoriales. (2) Estadística: distribuciones binomial y multinomial, chi-cuadrado y gamma, aproximaciones normales basadas en Stirling para leyes discretas. (3) Cálculo: toda serie de Taylor — sen, cos, e^x, log(1+x) — lleva n! en el denominador. Ese factorial es lo que hace que la serie converja más rápido de lo que crece el polinomio del numerador. (4) Física: funciones de partición en mecánica estadística, conteo de caminos en mecánica cuántica, secciones eficaces de dispersión. (5) Ciencias de la computación: algoritmos de conteo, análisis del caso medio en ordenación (n! permutaciones de n elementos), deducciones de la FFT. (6) Vida diaria: conteo de anagramas ("¿de cuántas formas se ordenan las letras de MISSISSIPPI?" usa 11! dividido por factoriales de letras repetidas), planos de asientos, estimaciones de robustez de contraseñas.
Cada cálculo rellena un cuadro de Análisis justo bajo el resultado con tres cantidades profesionales que de otro modo calcularías a mano. (1) Conteo de dígitos — cuántos dígitos decimales tiene n!, tomado de la cadena exacta BigInt para n ≤ 10.000 y de la fórmula de Stirling para n mayores; útil para planificar almacenamiento y ancho de visualización. (2) Ceros finales — calculados en O(log n) con la fórmula de Legendre Z(n) = ⌊n/5⌋ + ⌊n/25⌋ + ⌊n/125⌋ + ... (el clásico problema de matemática competitiva); por ejemplo 25! tiene 6 y 100! tiene 24. (3) Magnitud de Stirling — n! escrito como a × 10^b para verificar el orden de magnitud aun cuando el entero completo no sea práctico. El propio resultado es un entero BigInt exacto (cada dígito correcto, sin redondeo de coma flotante) hasta n = 10.000; por encima de eso la herramienta muestra la estimación de Stirling más el conteo de dígitos para que la página siga ágil en vez de volcar un número de varios megabytes.