según entendí la fórmula: n * factorial(n - 1) solo se modifica factorial(n - 1) por ejemplo factorial de 5 sería 5* (5-1)*(4-1)*(3-1)*...

Pregunta de la clase:
Recursividad
Mauricio Obe

Mauricio Obe

Pregunta
studenthace 5 años

según entendí la fórmula: n * factorial(n - 1) solo se modifica factorial(n - 1) por ejemplo factorial de 5 sería 5* (5-1)(4-1)(3-1)*(2-1)= 120 mi pregunta es: ¿si n debe modificarse si no es igual a 1, porque solo se modifica el factorial(n-1)? no deberían modificarse todas las n? eso me tiene pensando

4 respuestas
para escribir tu comentario
    Mauricio Obe

    Mauricio Obe

    studenthace 5 años

    Encontré la solución a mi respuesta en un libro, espero les sirva a todos :)

    recursion_1.PNGrecursion_2.PNG

    francisco ecatl melo valle

    francisco ecatl melo valle

    studenthace 5 años

    una vez que llego a 1 no es necesario saguir haciendo operaciones porque la factorizacon va de n a 1 5 *4 *3 *2 * 1 pero sabemos que factorial de n = 1 1 * 1 =1

    en tu ejemplo 5* (5-1)(4-1)(3-1)*(2-1)= 120 con el ultimo 1 que retorna seria 120 * 1 = 120

    Josue Noha Valdivia

    Josue Noha Valdivia

    studenthace 5 años

    hola, para hallar el factorial de n-1 (si no es 1) se vuelve a llamar a la funcion que entra con n-1-1=n-2, asi hasta llega a 1 que es el caso base

    Ramon Cruz Perez

    Ramon Cruz Perez

    studenthace 5 años

    supongo que cuando refieres a todas las n's, te refieres a por que no se calcula n=1 o n=0, no se calculan puesto que son casos bases, esto significa que sabemos cual su resultado de factorial(1)=1, esto ayuda detener el programa y no se vuelva un ciclo un infinito y nos arroje un error, y claro el factorial solo sirve en enteros positivos.

Curso de Pensamiento Computacional con Python

Curso de Pensamiento Computacional con Python

Comienza tu camino en el desarrollo de software con el lenguaje de programación Python. Entiende la estructura de pensamiento necesaria para resolver problemas en programación. Domina las estructuras de control para crear soluciones. Conoce las características de Python que te permiten reutilizar código. Prueba tu código e implementa correcciones y mejoras.

Curso de Pensamiento Computacional con Python
Curso de Pensamiento Computacional con Python

Curso de Pensamiento Computacional con Python

Comienza tu camino en el desarrollo de software con el lenguaje de programación Python. Entiende la estructura de pensamiento necesaria para resolver problemas en programación. Domina las estructuras de control para crear soluciones. Conoce las características de Python que te permiten reutilizar código. Prueba tu código e implementa correcciones y mejoras.