Bonus: Ejemplos de problemas y soluciones
El factorial aparece a menudo en matemáticas, especialmente en problemas de combinatoria y análisis matemático. Vamos a entender qué es el factorial y a aprender a resolver problemas sencillos.
¿Qué es el factorial?
A veces en matemáticas es necesario calcular el producto de números naturales consecutivos comenzando por la unidad. Si la tarea es calcular el producto hasta diez, esa escritura cabe en una sola línea: 1 × 2 × 3 × 4 × 5. Si los cálculos llegan a varias decenas o incluso centenares, solo la escritura de la expresión puede llevar bastante tiempo. Para ahorrar tiempo y lograr una escritura más compacta, en matemáticas existe el factorial.
El factorial de un número natural n es el producto de todos los números naturales desde 1 hasta n, incluyendo el propio n. El factorial se escribe con un signo de exclamación después del número (n!), y se pronuncia «n factorial». Sabiendo todo esto, la expresión anterior se puede escribir de forma más compacta: 1 × 2 × 3 × 4 × 5 = 5! = 120. El factorial se aplica activamente en combinatoria, teoría de números, análisis matemático, análisis funcional y otras ramas de las matemáticas.
Propiedades básicas del factorial
Es importante recordar que en matemáticas el factorial solo puede ser un número natural. Por lo tanto, no se puede calcular el factorial de un número negativo o fraccionario. También es importante recordar:
- El factorial de cero siempre es igual a uno — 0! = 1;
- El factorial de uno siempre es igual a uno — 1! = 1.
Para un cálculo rápido se puede utilizar una tabla de factoriales, que contiene factoriales de números ya calculados:
n! | Valor |
---|---|
1! | 1 |
2! | 2 |
3! | 6 |
4! | 24 |
5! | 120 |
6! | 720 |
7! | 5 040 |
8! | 40 320 |
9! | 362 880 |
10! | 3 628 800 |
11! | 39 916 800 |
12! | 479 001 600 |
13! | 6 227 020 800 |
14! | 87 178 291 200 |
15! | 1 307 674 368 000 |
16! | 20 922 789 888 000 |
17! | 355 687 428 096 000 |
18! | 6 402 373 705 728 000 |
19! | 121 645 100 408 832 000 |
20! | 2 432 902 008 176 640 000 |
De la tabla se puede observar que el factorial es una función de crecimiento rápido. ¡El valor de 10! ya supera el orden de los miles, pasando a los millones.
Fórmula recurrente del factorial
El factorial está sujeto a recursividad, lo que simplifica su cálculo. Consideremos un ejemplo simple. Necesitamos encontrar el valor de 6!. Para ello, descomponemos la escritura compacta del factorial en factores individuales: 6! = 1 × 2 × 3 × 4 × 5 × 6. Podemos empezar a multiplicar todos los números uno tras otro, pero de la escritura se puede ver que podemos ahorrar tiempo multiplicando el factorial de cinco por seis: 5! × 6. Ya sabemos que el factorial de 5 es 120, así que simplemente multiplicamos el valor por seis y obtenemos 720: 6! = 1 × 2 × 3 × 4 × 5 × 6 = 5! × 6 = 720.

La fórmula recurrente del factorial en su forma general se puede escribir así:
n! = (n — 1)! × n. Esta fórmula es útil para construir algoritmos de cálculo factorial en programación, pero calcular factoriales de números grandes con ella es largo y complejo. Por ejemplo, si necesitamos encontrar 100!, entonces necesitamos conocer 99!, porque 100! = 99! × 100.
Usemos la fórmula recurrente del factorial para el cálculo usando Python. El código de la función tendrá este aspecto:
def factorial(n):
# Procesamiento de valores estándar
if n == 1 or n == 0:
return 1
else:
# Procesamiento de valores mayores que uno
return factorial(n-1) * n
Creamos la función factorial
y le pasamos el valor n como argumento. Si n es cero o uno, devolvemos uno, de acuerdo con las propiedades básicas del factorial. En los demás casos, llamamos recursivamente a la función factorial
con el valor n-1. Intentemos ejecutar la función para diferentes números y comparar el resultado con la tabla de factoriales:
print(factorial(5))
print(factorial(10))
print(factorial(15))
print(factorial(999))
Salida:
>>> 120
>>> 3628800
>>> 1307674368000
>>> RecursionError: profundidad máxima de recursión excedida en la comparación
Los resultados de la función son correctos, lo que significa que el código funciona. Se puede observar que al intentar calcular 999!, el programa arroja un error. Esto se debe a la profundidad máxima de recursión: en Python, por defecto, hay un límite de 998 llamadas recursivas. La profundidad de recursión se puede aumentar si se especifica un nuevo valor de límite antes de la función:
import sys
sys.setrecursionlimit(2000)
Ahora la función se puede llamar recursivamente hasta 2000 veces, pero esto puede sobrecargar el ordenador, especialmente si se calculan valores grandes.
Fórmula de Stirling
Calcular el factorial de un número n encontrando el producto de todos los números naturales de 1 a n puede llevar mucho tiempo. Estas tareas son difíciles de procesar incluso con un ordenador. Todo se debe a que la función factorial crece demasiado rápido. Se puede simplificar la tarea con la fórmula del matemático escocés James Stirling, que permite calcular rápidamente el valor aproximado del factorial. La escritura general de la fórmula tiene el siguiente aspecto:

Para comprender la fórmula, recordemos que π es aproximadamente igual a 3,14, y e es 2,71. Después de esto, solo queda sustituir el valor de n en la fórmula de Stirling y realizar las operaciones matemáticas.
Consideremos un ejemplo de encontrar 5! usando la fórmula de Stirling:

Después de una serie de transformaciones y cálculos, obtenemos que 5! = 118,019. Si multiplicamos los números uno tras otro, entonces 5! = 120. En el ejemplo se puede ver claramente que el valor obtenido es aproximado. Para valores pequeños de n, como en el ejemplo anterior, el error será mayor que para valores grandes.
¿Dónde se aplica el factorial?
Un área de aplicación clara del factorial son los problemas de permutaciones sin repeticiones de la combinatoria. Considerémoslo con un ejemplo.
Problema
Se invitó a un grupo de 6 personas a un banquete. ¿De cuántas maneras se puede colocar a los invitados en una mesa?
En la mesa hay seis lugares, uno para cada invitado:

Solución del problema usando el factorial
Se puede intentar calcular manualmente todas las posibles combinaciones de colocación de los invitados, pero esto llevará mucho tiempo. En primer lugar, las combinaciones ya contadas deben recordarse y, con cada nueva combinación, comprobar si ya existe. En segundo lugar, es muy fácil perder una combinación posible.

Estos problemas se pueden resolver de forma fácil y rápida usando el factorial. Para ello, a cada lugar se le asigna una letra del alfabeto latino de la A a la F:

En el lugar de la letra A podemos colocar a cualquiera de los 6 invitados, nos quedarán 5. En el lugar de la letra B ya podemos sentar a cualquiera de los 5 invitados, quedarán 4. En el lugar de la letra C podemos sentar a cualquiera de los 4 invitados, quedarán 3. Y así sucesivamente. En el último lugar F solo podemos sentar a un invitado, ya que los demás ya están sentados. Obtenemos la siguiente situación:

Para saber todas las formas de sentar a los invitados, es necesario multiplicar las opciones posibles escritas en la imagen sobre los lugares. Obtenemos 6 × 5 × 4 × 3 × 2 × 1. Esta misma expresión se puede escribir como 6!, que es igual a 720.
Problemas prácticos
Ahora sabemos lo suficiente para resolver problemas de búsqueda de factoriales. Es importante recordar que se pueden simplificar los factoriales, desplegar la escritura abreviada, enrollar la completa, reducir y multiplicar.
Problema 1
Simplificar la fracción:

Para resolver el problema, usemos la propiedad recurrente del factorial y descompongamos el numerador. Los valores resultantes en el numerador y el denominador se pueden reducir, quedando 50.

Problema 2
Encontrar el valor de la expresión para n=5:

Sustituimos los valores y calculamos los paréntesis, el numerador resultante se puede descomponer según la fórmula recurrente, para que la expresión tenga el aspecto de 6 × 5 × 4!. Reducimos lo superfluo y obtenemos 6 × 5 = 30:


Problema 3
Encontrar la suma de los factoriales de los números del 1 al 5:

Encontramos el factorial de cada número y calculamos la suma de los términos:

Problema 4
Encontrar el valor de la expresión:

Descomponemos ambos numeradores según la fórmula recurrente del factorial:

Reducimos y multiplicamos, obteniendo 57 en la respuesta.
Resumen
El factorial de un número natural n es el producto de los números naturales de 1 a n.
El factorial de cero y uno siempre es igual a uno — 0! = 1 y 1! = 1.
No se puede calcular el factorial para números negativos y fraccionarios;
El factorial es una función de crecimiento rápido, por lo que es difícil encontrar valores para números grandes.
Se puede calcular rápidamente el factorial usando la fórmula de Stirling, pero el valor será aproximado.