- Que es factorial
- Fórmula factorial
- 10 factoriales
- factorial de 5
- factorial de 0
- Programa factorial en Python
- Contar ceros finales en factorial
- Preguntas frecuentes
Planteamiento del problema: Tenemos la intención de usar Python para cubrir los conceptos básicos de factorial y computación factorial de un número.
¿Qué es Factorial?
En palabras simples, si quieres encontrar el factorial de un entero positivo, sigue multiplicándolo por todos los enteros positivos menores que ese número. El resultado final que obtienes es el factorial de ese número. Entonces, si desea encontrar el factorial de 7, multiplique 7 con todos los números enteros positivos menores que 7, y esos números serían 6,5,4,3,2,1. Multiplica todos estos números por 7, y el resultado final es el factorial de 7.
Si está buscando desarrollar su experiencia en el programa factorial de Python, considere obtener la certificación. Este curso gratuito de Programa Factorial en Python le ofrece una guía completa sobre el tema y también un certificado al finalizar que seguramente hará que su CV se destaque.
fórmula de factorial
El factorial de un número se denota por n! es el producto de todos los enteros positivos menores o iguales a n:
¡norte! = norte*(n-1)*(n-2)*.....3*2*1
10 Factoriales
Entonces, ¿qué es 10? Multiplica 10 por todos los enteros positivos menores que 10.
10! =10*9* 8 *7* 6 *5* 4 *3*2*1=3628800
Factorial de 5
Para encontrar '5!' de nuevo, haz el mismo proceso. Multiplica 5 con todos los enteros positivos menores que 5. Esos números serían 4,3,2,1
5!=5*4* 3 *2*1 = 120
Factorial de 0
Dado que 0 no es un número entero positivo, por convención, el factorial de 0 se define como él mismo.
0! = 1
Calcular esto es un problema interesante. Pensemos por qué la simple multiplicación sería problemática para una computadora. La respuesta a esto radica en cómo se implementa la solución.
1! = 1
2! = 2
5! = 120
10! = 3628800
20! = 2432902008176640000
30! = 9.332621544394418e+157
El aumento exponencial de los valores nos muestra que factorial es una función exponencial, y el tiempo necesario para calcularla sería un tiempo exponencial.
Programa factorial en Python
Vamos a pasar por 3 formas en las que podemos calcular el factorial:
- Usando una función del módulo matemático
- Enfoque iterativo (usando for loop)
- Enfoque recursivo
Programa factorial en Python usando la función
Este es el método más sencillo que se puede utilizar para calcular el factorial de un número. Aquí tenemos un módulo llamado matemáticas que contiene varias operaciones matemáticas que se pueden realizar fácilmente usando el módulo.
import math
num=int(input("Enter the number: "))
print("factorial of ",num," (function): ",end="")
print(math.factorial(num))
Entrada – Introduzca el número: 4
Salida – Factorial de 4 (función):24
Programa factorial en python usando for loop
def iter_factorial(n):
factorial=1
n = input("Enter a number: ")
factorial = 1
if int(n) >= 1:
for i in range (1,int(n)+1):
factorial = factorial * i
return factorial
num=int(input("Enter the number: "))
print("factorial of ",num," (iterative): ",end="")
print(iter_factorial(num))
Entrada – Introduzca el número: 5
Salida - Factorial de 5 (iterativo): 120
Considere el programa iterativo. Se necesita mucho tiempo para que se ejecute el ciclo while. El programa anterior toma mucho tiempo, digamos infinito. El propósito mismo de calcular el factorial es obtener el resultado a tiempo; por lo tanto, este enfoque no funciona para grandes números.
Programa factorial en Python usando recursividad
def recur_factorial(n):
"""Function to return the factorial
of a number using recursion"""
if n == 1:
return n
else:
return n*recur_factorial(n-1)
num=int(input("Enter the number: "))
print("factorial of ",num," (recursive): ",end="")
print(recur_factorial(num))
Entrada – Entrada – Introduzca el número: 4
Salida – Factorial de 5 (recursivo) : 24
En una computadora con 16 GB de RAM, el programa anterior podría calcular valores factoriales de hasta 2956. Más allá de eso, excede la memoria y, por lo tanto, falla. El tiempo necesario es menor en comparación con el enfoque iterativo. Pero esto viene a costa del espacio ocupado.
¿Cuál es la solución al problema anterior?
El problema del cálculo factorial tiene una estructura altamente repetitiva.
Para calcular el factorial (4), calculamos f(3) una vez, f(2) dos veces y f(1) tres veces; a medida que aumenta el número, aumentan las repeticiones. Por lo tanto, la solución sería calcular el valor una vez y almacenarlo en una matriz desde donde se pueda acceder a él la próxima vez que se requiera. Por lo tanto, usamos programación dinámica en tales casos. Las condiciones para implementar la programación dinámica son
- Subproblemas superpuestos
- subestructura óptima
Considere la modificación del código anterior de la siguiente manera:
def DPfact(N):
arr={}
if N in arr:
return arr[N]
elif N == 0 or N == 1:
return 1
arr[N] = 1
else:
factorial = N*DPfact(N - 1)
arr[N] = factorial
return factorial
num=int(input("Enter the number: "))
print("factorial of ",num," (dynamic): ",end="")
print(DPfact(num))
Entrada – Introduzca el número: 6
Salida – factorial de 6 (dinámico) : 720
Una solución de programación dinámica es altamente eficiente en términos de complejidades de tiempo y espacio.
Contar ceros finales en Factorial usando Python
Declaración del problema: cuente la cantidad de ceros en el factorial de un número usando Python
num=int(input("Enter the number: "))
# Initialize result
count = 0
# Keep dividing n by
# powers of 5 and
# update Count
temp = 5
while (num / temp>= 1):
count += int(num / temp)
temp *= 5
# Driver program
print("Number of trailing zeros", count)
Salida
Ingrese el Número: 5
Número de ceros finales 1
Aprenda a encontrar si una cuerda es un palíndromo.
Aprende a imprimir el Serie de Fibonacci en Python. Además, aprender inteligencia artificial en linea con la ayuda de este curso de IA.
Preguntas frecuentes
¿Qué es el factorial en matemáticas?
Factorial de un número, en matemáticas, es el producto de todos los enteros positivos menores o iguales a un número positivo dado y denotado por ese número y un signo de exclamación. De este modo, factorial siete se escribe 4! es decir, 1 × 2 × 3 × 4, igual a 24. El cero factorial se define como igual a 1. El factorial de los números reales y negativos no existe.
¿Cuál es la fórmula del factorial?
Para calcular el factorial de un número N, usa esta fórmula:
Factoriales=1 x 2 x 3 x…x N-1 x N
¿Hay una función factorial en Python?
Sí, podemos importar un módulo en Python conocido como matemáticas que contiene casi todas las funciones matemáticas. Para calcular factorial con una función, aquí está el código:
import math
num=int(input("Enter the number: "))
print("factorial of ",num," (function): ",end="")
print(math.factorial(num))
¿Encontraste este blog interesante? Aprende Inteligencia Artificial en Línea con la ayuda del curso de inteligencia artificial y aprendizaje automático PGP de Great Learning, ¡y mejore sus habilidades hoy mismo!