Índice de contenido
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:
- 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!
- 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
popular post
El modelo AR de series temporales univariadas
Resumen: En esta entrada, descubrirá el modelo AR: El modelo autorregresivo.
Leer másEvaluación de modelos para pronosticar
Resumen: Al desarrollar modelos de aprendizaje automático, generalmente se comparan varios modelos durante la fase de construcción.
Leer másModelos para pronosticar
Resumen: El pronóstico, traducido groseramente como la tarea de predecir el futuro, ha estado presente en la sociedad humana durante siglos.
Leer más