Para valores positivos de n, vamos a escribir n! n! como lo hicimos antes, como un producto de números empezando en n y bajando hasta llegar a 1: n! n! = n(n1)21 n \cdot (n-1) \cdots 2 \cdot 1 . Pero observa que (n1)21 (n-1) \cdots 2 \cdot 1 es otra manera de escribir (n1)! (n-1)! , así que podemos decir que n!=n(n1)! n! = n \cdot (n-1)! . ¿Viste lo que acabamos de hacer? Escribimos n! n! como un producto en el cual uno de los factores es (n1)! (n-1)! . Te dijimos que podemos calcular n! n! calculando (n1)! (n-1)! y después multplicando el resultado de calcular (n1)! (n-1)! por n. Puedes calcular la función factorial de n al calcular primero la función factorial de n, minus, 1. Decimos que calcular (n1)! (n-1)! es un subproblema que resolvemos para calcular n!.
Veamos un ejemplo: calcular 5!.
  • Puedes calcular 5! como 54! 5 \cdot 4! .
  • Ahora necesitas resolver el subproblema de calcular 4!, el cual puedes calcular como 4, dot, 3!.
  • Ahora necesitas resolver el subproblema de calcular 3!, el cual es 32! 3 \cdot 2! .
  • Ahora 2!, el cual es 21! 2 \cdot 1! .
  • Ahora necesitas calcular 1!. Podrías decir que 1! equivale a 1, porque es el producto de todos los enteros desde 1 hasta 1. O puedes aplicar la fórmula de 1!=10! 1! = 1 \cdot 0! . Vamos a hacerlo aplicando la fórmula.
  • Definimos 0! igual a 1.
  • Ahora puedes calcular 1!=10!=1 1! = 1 \cdot 0! = 1 .
  • Habiendo calculado 1!=1 1! = 1 , puedes calcular 2!=21!=2 2! = 2 \cdot 1! = 2 .
  • Habiendo calculado 2!=2 2! = 2 , puedes calcular 3!=32!=6 3! = 3 \cdot 2! = 6 .
  • Habiendo calculado 3!=6 3! = 6 , puedes calcular 4!=43!=24 4! = 4 \cdot 3! = 24 .
  • Por último, habiendo calculado 4!=24 4! = 24 , puedes terminar de calcular 5!=54!=120 5! = 5 \cdot 4! = 120 .
Así que ahora tenemos otra manera de pensar acerca de cómo calcular el valor de n! n! para todos los enteros no negativos n:
  • Si n, equals, 0, entonces declara que n!=1 n! = 1 .
  • De lo contrario, n debe ser positivo. Resuelve el subproblema de calcular (n1)! (n-1)! , multiplica este resultado por n y declara que n! n! es igual al resultado de este producto.
Cuando estamos calculando n! n! de esta manera, llamamos al primer caso, en donde inmediatamente sabemos la respuesta, el caso base, y llamamos al segundo caso, en donde tenemos que calcular la misma función pero en un valor diferente, el caso recursivo.

Este contenido es una colaboración de los profesores de Dartmouth Computer Science Thomas Cormen y Devin Balkcom, con el equipo de contenidos de computación de Khan Academy. El contenido está bajo licencia CC-BY-NC-SA.