El factorial de un número en se calcula multiplicando todos los números comprendidos entre 1 hasta el número seleccionado. n! = 1 x 2 x 3 x ……. x (n-1) x n. Además, el factorial del número 0 es 1.
Algoritmo factorial Javascript
La implementación para calcular el factorial en Javascript podemos hacerla como mostramos a continuación, a partir de un bucle decreciente.
var entrada = 5;
let factorial = 1;
for(i = entrada; i>0; i--){
factorial *= i;
}
document.write(factorial);
Algoritmo recursivo factorial JS
Podemos además implementar el cálculo factorial en JS de una manera recursiva tal y como te mostramos. Para el caso recursivo tenemos que tener claro cual es el caso general y el caso base, que será la condición de parada:
- Caso General: j * (j-1)!
- Caso Base: 1 si j=0
function funcionRecursiva(j) {
if (j == 0){
return 1;
}
return j * funcionRecursiva(j-1);
}
Complejidad computacional del factorial Javascript
Según la fórmula de Stirling, la complejidad de n! en cuanto al número de bits en su resultado es: O(nlogn). Una buena aproximación para mejorar los tiempos es con computación paralela, pueden descomponerse las multiplicaciones en dos secuencias paralelas y luego realizando una multiplicación final.
Funciones relacionadas con el factorial
- Factorial alterno
- Factorial Bhargava
- Doble factorial: producto de enteros impares. Ejemplo: 9!! = 1 x 3 x 5 x 7 x 9 = 945.
- Factorial exponencial: Estos factoriales crecen mucho más rápido que los factoriales normales.
- Factorial descendente
- Hiperfactorial
Factorial en Java
Si además quieres saber como calcular el factorial de un número en Java, aquí te lo dejamos:
Más algoritmos matemáticos en Javascript
Sucesión de Fibonacci | Código JS que implementa la sucesión de Fibonacci |
Números Primos | Cómo calcular si un número es primo |
Cálculo Factorial | Implementación del factorial de un número en JS |
Cálculo Número Pi | Cálculo del número Pi en JS |
Recursos básicos JS
Prototype | Añadir propiedades de forma dinámica a un objeto |
toLocaleString | Herramienta esencial para el formateo de fechas y números en aplicaciones internacionales |
Recursividad y pila | Uso de recursividad y funcionamiento de la pila JS |
Desestructuración | Mecanismo para desempaquetar arrays y objetos |
Manejo de Strings | Manejo básico de Strings, cadenas de caracteres |
Operadores | Uso de operadores de comparación y lógicos |
Promesas | Gestión de peticiones asíncronas con promesas |
Sleep | Implementación de la función sleep() en JS |
This | Uso de la palabra reservada this en diferentes contextos |
Maps | Te enseñamos cuando usar Map y cuando Object con ejemplos |
Switchery JS | Librería para modificar el estilo de los checkbox |
Mejores libros Javascript Español | Encuentra los mejores libros para aprender JS y convertirte en el desarrollador más demandado. |
Exception JS | Manejo de excepciones en Javascript, control de errores y flujo de programa. |
Obfuscator Javascript | Protege tu código Javascript Ofuscándolo |
Javascript desde cero | Aprende los conceptos básicos de Javascript, ponte en marcha. |
Lodash | Lodash hace que la manipulación de datos en JavaScript sea más fácil y menos propensa a errores |
Formatdate JS | Formateo y trabajo con fechas en javascript de forma sencilla. |
Dayjs | Biblioteca para la gestión de fechas |
padStart | Maneja cadenas de texto con la función padStart() |