Cómo calcular el factorial de un número en Python

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Fundamentos del factorial en Python

El factorial es una de las operaciones matemáticas fundamentales con amplias aplicaciones en combinatoria, teoría de probabilidades, criptografía y algoritmos. En el lenguaje de programación Python, calcular el factorial es una tarea bastante sencilla. Existen varias formas de resolverlo: usando bucles, recursión y bibliotecas integradas.

En este artículo, analizamos en detalle diferentes métodos para calcular el factorial de un número en Python. Comparamos los distintos enfoques, evaluando sus ventajas y desventajas. También explicamos cómo evitar errores típicos al trabajar con factoriales.

Definición matemática del factorial

El factorial de un número n se denota como n! y representa el producto de todos los números naturales desde 1 hasta n, inclusive.

Ejemplos de cálculo del factorial

Veamos algunos ejemplos básicos:

  • 0! = 1 (definido por convención)
  • 1! = 1
  • 3! = 1 × 2 × 3 = 6
  • 5! = 1 × 2 × 3 × 4 × 5 = 120
  • 6! = 1 × 2 × 3 × 4 × 5 × 6 = 720

Debemos prestar especial atención al factorial de cero. Según la definición matemática, 0! es igual a uno. Aunque pueda parecer poco intuitivo, esta convención simplifica muchas fórmulas matemáticas y garantiza la coherencia en los cálculos combinatorios.

Métodos para calcular el factorial en Python

Método iterativo para calcular el factorial

El enfoque iterativo usando un bucle es el método más simple y claro para programadores principiantes.

def factorial_iterativo(n):
    resultado = 1
    for i in range(2, n + 1):
        resultado *= i
    return resultado

print(factorial_iterativo(5))  # Salida: 120

Ventajas del método iterativo

  • Simplicidad de implementación y comprensión
  • Sin riesgo de desbordamiento de pila
  • Alto rendimiento para números grandes
  • Uso controlado de la memoria

Desventajas del método iterativo

  • Código menos elegante en comparación con el enfoque recursivo
  • Puede parecer menos natural desde el punto de vista matemático

Método recursivo para calcular el factorial

La recursión consiste en una función que se llama a sí misma. El cálculo recursivo del factorial se basa en la definición matemática.

def factorial_recursivo(n):
    if n == 0 or n == 1:
        return 1
    else:
        return n * factorial_recursivo(n - 1)

print(factorial_recursivo(5))  # Salida: 120

Ventajas del método recursivo

  • Enfoque elegante e intuitivo matemáticamente
  • Fácil de leer y entender
  • Refleja directamente la definición matemática
  • Código conciso

Desventajas del método recursivo

  • Límite de profundidad de recursión en Python (por defecto, unos 1000 llamados)
  • Riesgo de error RecursionError con valores grandes
  • Mayor consumo de memoria en la pila de llamadas
  • Más lento en comparación con el enfoque iterativo

Uso de la biblioteca integrada math

Python ofrece una solución lista para usar con la función math.factorial(), optimizada para un cálculo rápido y eficiente del factorial.

import math

print(math.factorial(5))  # Salida: 120
print(math.factorial(10))  # Salida: 3628800

Ventajas de usar math.factorial

  • Alta velocidad de ejecución
  • No es necesario implementar tu propia función
  • Código optimizado a nivel de intérprete
  • Soporte para trabajar con números muy grandes
  • Manejo integrado de casos límite

Desventajas de usar ma

Blogs

Book Recommendations