Python Programa para encontrar el factorial de un número

⚡ Resumen inteligente

Factorial de un número en Python es el producto de todos los enteros positivos hasta ese número. Python Lo calcula con un bucle for, una comprobación if-else, recursión o la función integrada math.factorial().

  • 🔘 Bucle for: Itera desde 1 hasta n, multiplicando un producto acumulado para construir el factorial.
  • ☑️ Comprobación if-else: Evita la entrada de datos negativos y devuelve un error, ya que los factoriales requieren números enteros no negativos.
  • Recurrencia: Una función se llama a sí misma con n-1 hasta que llega al caso base de 0.
  • 🧪 factorial(): Importa la función matemática y llama a una función integrada para obtener un resultado rápido y probado.
  • 🛠️ Casos extremos: El factorial de 0 es igual a 1, y Python Maneja resultados muy grandes de forma nativa.
  • 🤖 Inteligencia artificial y ciencia de datos: La probabilidad, la combinatoria y bibliotecas como SciPy utilizan factoriales en matrices.

Python Programa para encontrar el factorial de un número

Las secciones siguientes muestran cuatro maneras de calcular un factorial en Python — un bucle for, una versión if-else, recursión y math.factorial() — además del algoritmo subyacente y sus aplicaciones.

Factorial de un número usando for Loop

Tomemos como ejemplo Python Código que toma como entrada un entero positivo para calcular el factorial de enteros positivos. En el siguiente código, el bucle comienza con uno y luego multiplica por cada número que precede al número cuyo factorial se desea calcular.

Las siguientes Python El código ilustra la función factorial mediante un bucle.

Python código:

print ("Input a number")
factorialIP = int (input ())
ffactor23 = 1
for j in range (1, factorialIP+1):
   ffactor23 = ffactor23 * j
print ("The factorial of the number is “, ffactor23)

Salida:

Input a number
4
The factorial of the number is 24

Lo anterior Python El programa solo acepta números positivos como entrada y no realiza ninguna comprobación de números negativos. En este programa, el factor es 1 cuando j es igual a 1. Cuando j es 2, el factor se multiplica por 2, y el proceso continúa hasta que j sea igual a 4, llegando así a 24.

Factorial de un número usando la declaración IF...else

Las siguientes Python Este código ilustra la función factorial mediante una función. A diferencia de la versión con bucle, este programa también comprueba si hay números negativos antes de calcular el factorial.

En el anterior Python En el código, no se aplicó la comprobación de números negativos, lo que hizo que la función factorial estuviera incompleta y fuera propensa a generar un mensaje de error si se introducían números negativos.

En el código proporcionado, el bucle comienza con uno y multiplica por cada número anterior, y la función también valida la entrada para detectar números negativos.

Python código:

print("Enter a number for the purpose of determining factorial")
factorialIP = int(input())
def factorial(factorialIP):
   if factorialIP < 0:
     print ('Factorial does not exist')
     factor=0
     return factor
   elif factorialIP == 0:
     factor=1
     return factor
     print(factor)
   else:
     factor = 1
     for j in range (1, factorialIP+1):
       factor = factor * j
     return factor
  print ("The factorial of the number is ", factorial(factorialIP))

Salida:

1) Enter a number to determine factorial
   -4
   Factorial does not exist
   The factorial of the number is 0

2) Enter a number to determine factorial
   4
   Factorial does not exist
   The factorial of the number is 24

Este Python El programa acepta números positivos y añade una comprobación para números negativos mediante la instrucción if/else, devolviendo correctamente 24 para una entrada de 4.

Factorial de un número usando recursividad

Las siguientes Python Este código ilustra la función factorial mediante recursión. En este ejemplo, una función recursiva que recibe como entrada un número entero positivo determina el factorial.

Python código:

print("Enter a number for the purpose of determining factorial")
def factorial(num2):
  if num2 < 0:
    return 'Factorial does not exist'
  elif num2 == 0:
     return 1
  else:
     return num2 * factorial(num2-1)
number1 = int(input())
print("The factorial of the number is",factorial(number1))

Salida:

Enter a number for the purpose of determining factorial
4
The factorial of the number is 24

La recursión puede explicarse como un concepto en el que la función invocada en el Python El módulo puede llamarse a sí mismo una y otra vez. Se ejecuta hasta que... Python Se cumple la condición presente en el módulo, en la cual se pasa un valor a la función invocada.

En lo anterior Python En este programa, la función `def factorial` se llama a sí misma recursivamente hasta que el número llega a cero. Una vez que el número llega a cero, se inicializa con el valor 1, finalizando así la recursión.

Factorial de un número usando math.factorial()

Las siguientes Python El código ilustra la función factorial usando math.factorial(), que se puede usar importando el módulo math.

Esta función no acepta números enteros negativos y genera un error de valor cuando se proporcionan números decimales.

Python código:

print("Enter a number for computing factorial")
import math
number1 = int(input())
print("The factorial is as computed comes out to be ")
print(math.factorial(number1))

Salida:

Enter a number for computing factorial
4
The factorial, as computed, comes out to be 24

Algoritmo para el Programa Factorial en Python

Tomemos un ejemplo que ilustra el concepto de factorial.

Para determinar el factorial 5, siga estos pasos:

5! = 5 x (5-1) x (5-2) x (5-3) x (5-4)
5! =120

¡Aquí, 5! se expresa como 120.

El siguiente diagrama ayuda a comprender el algoritmo de cálculo factorial y, en este caso, ¡tomemos un ejemplo de factorial 4!

Algoritmo para el programa factorial

¡Algoritmo con ejemplo pictórico de factorial 4!

Aplicación del Factorial en Python

El factorial de un número tiene un amplio nivel de aplicaciones en matemáticas. Aquí hay aplicaciones importantes de Python:

  • Python ayuda en el cálculo, seguido de la impresión del factorial en términos más rápidos y eficientes que otros lenguajes de programación disponibles.
  • El Python El código es fácilmente comprensible y se puede replicar en diferentes plataformas, y el factorial Python El programa puede incorporarse en varias tareas de construcción de modelos matemáticos.

Preguntas Frecuentes

El factorial de un entero no negativo n, escrito n!, es el producto de todos los enteros positivos desde 1 hasta n. Por ejemplo, 5! es igual a 5 × 4 × 3 × 2 × 1 = 120.

Por definición, el factorial de 0 es 1. Todos los métodos (bucle, recursión o math.factorial()) devuelven 1 para una entrada de 0, y este caso base también detiene las llamadas recursivas.

Sí. Python Los números enteros tienen precisión ilimitada, por lo que math.factorial(100) devuelve un resultado de 158 dígitos sin desbordamiento. Solo la memoria y el tiempo de ejecución aumentan con el tamaño de la entrada.

A en bucle Por lo general, se prefiere. Ambos se ejecutan en tiempo O(n), pero el bucle utiliza memoria constante, mientras que la recursión agrega una pila de llamadas que puede alcanzar Pythonlímite de recursión.

Cada método estándar requiere n−1 multiplicaciones, por lo que la complejidad temporal es O(n). El bucle iterativo mantiene el espacio en O(1), mientras que la recursión utiliza un espacio de O(n) para su pila de llamadas.

La recursión profunda puede exceder PythonEl límite predeterminado es cercano a 1000 llamadas. Use un bucle for iterativo o math.factorial() para entradas grandes, o aumente el límite con sys.setrecursionlimit().

Sí. Los factoriales aparecen en combinatoria y en distribuciones de probabilidad como la de Poisson y la binomial, que son la base de muchos modelos de aprendizaje automático. Las bibliotecas de ciencia de datos también ofrecen funciones vectorizadas para calcular factoriales en matrices.

Sí. GitHub Copilot y asistentes de IA similares generan versiones con bucles, recursivas y con math.factorial() a partir de una breve instrucción. Siempre revise la sugerencia para la protección contra números negativos y el caso base 0!.

Resumir este post con: