Revista Comunicación

Programando el cálculo de factoriales

Publicado el 12 julio 2013 por Dracux @isladelmono

Como parte de unos artículos que quiero hacer en el futuro (en estos días), vamos a hablar de los factoriales. Creo que todos los que leen este artículo saben de que van los factoriales.  Por las dudas vamos a hacer una pequeña explicación:

¿Qué es un factorial?

El factorial de un número n es el producto de todos los números desde el 1 hasta n. Por ejemplo, el factorial de 10 es:

10x9x8x7x6x5x4x3x2x1=3628800

Programando la función factorial

El factorial es un caso típico de recursión. O sea, la función factorial se va a ir llamando a si misma:

 

def fact(n):
    if n<2:
        return 1
    else:
        return n*fact(n-1)

nro=input("Ingrese el nro. del cual sacar el factorial: ")
print fact(nro)

Como vemos la función factorial es recursiva. Supongamos que n==6.

Entra en la primera ocasión con n==6 y como n>1 retorna n*fact(5). Así que tiene que entrar a hacer la función factorial con 5, donde nuevamente va a seguir el mismo camino y llama a fact(4) y así, por lo que básicamente está haciendo algo como esto:

6*5!

6*5*4!

6*5*4*3!

6*5*4*3*2!

6*5*4*3*2*1!

Como ahí llegó al “caso base”, vamos hacia atrás, las multiplicaciones:

6*5*4*3*2*1

6*5*4*3*2

6*5*4*6

6*5*24

6*120

720

Y finalmente ese es el resultado. Es increible como la recursión nos ahorra un montón de código y hace muchísimo.

Esta función la vamos a usar mucho para futuros artículos matemáticos que estoy preparando.


Volver a la Portada de Logo Paperblog