preloader

January 1, 1 | 2 minutes read
Index of content

La función se da a continuación: def factorial(n): if n == 1: # La condición de terminación return 1 # El caso base demás: res = n * factorial(n-1) # La llamada recursiva volver res imprimir(factorial(5)) La clave para entender esta función es que tiene:

  1. Una condición de terminación cuya ejecución está garantizada cuando el valor de n es 1. Este es el caso base; no podemos reducir el problema más abajo ya que el factorial de 1 es 1!
  2. La función se llama recursivamente a sí misma pero con n − 1 como argumento; esto significa cada vez que se llama a sí mismo el valor de n es menor. Así, el valor devuelto por esta llamada es el resultado de un cálculo más pequeño. Para aclarar cómo funciona esto, podemos agregar algunas declaraciones de impresión (y una profundidad indicador) a la función para indicar su comportamiento: def factorial(n, profundidad = 1): si n == 1: print(’\t’ * profundidad, ‘Retornando 1’) volver 1 demás: print(’\t’*profundidad,‘Llamando factorial recursivamente(’,n- 1,’)’) resultado = n * factorial(n-1, profundidad + 1) print(’\t’ * profundidad, ‘Retornando:’, resultado) resultado devuelto print(‘Llamando factorial( 5 )’) imprimir(factorial(5)) Cuando ejecutamos esta versión del programa, el resultado es: Factorial de llamadas( 5 ) Llamada factorial recursiva( 4 )

Llamada factorial recursiva( 3 )

Llamada recursiva factorial( 2 )

Llamada factorial recursiva( 1 )

regresando 1

Regreso: 2

Regreso: 6

Regreso: 24 Regreso: 120 120 9.6 Cálculo factorial recursivamente 103

comments powered by Disqus

popular post

Temas de Pregrado en Ciencias de la Computación Guía avanzada a Python 3 Programación Juan caza

Read More

Temas de Pregrado en Ciencias de la Computación Guía avanzada a Python 3 Programación Juan caza

Read More

• https://docs.python.org/3/ El sitio principal de documentación de Python 3. Contiene tutoriales, referencias de bibliotecas, guías de configuración e instalación, así como Python cómo-tos • https://docs.

Read More