preloader

January 1, 1 | 3 minutes read
Index of content

Tenga en cuenta que el parámetro de profundidad se utiliza simplemente para proporcionar alguna sangría a la imprimir declaraciones. De la salida podemos ver que cada llamada al programa factorial da como resultado un cálculo más simple hasta el punto en que estamos pidiendo el valor de 1! cual es

  1. Esto se devuelve como resultado de llamar a factorial(1). Este resultado es multi- plied con el valor de n antes de eso; que era 2. Las causas factorial(2) a devuelve el valor 2 y así sucesivamente. 9.7 Desventajas de la recursividad Aunque la recursividad puede ser una forma muy expresiva de definir cómo se puede resolver un problema, resuelto, no es tan eficiente como la iteración. Esto se debe a que una llamada de función es más costoso para Python procesar ese bucle for. En parte esto se debe a la infraestructura que va junto con una llamada de función; esa es la necesidad de configurar la pila para cada invocación de función separada para que todas las variables locales sean independientes de cualquier otra llamada a esa función. También está relacionado con el desenrollado asociado de la pila. cuando una función regresa. Sin embargo, también se ve afectado por la creciente cantidad de memoria que cada llamada recursiva debe usar para almacenar todos los datos en la pila. En algunos idiomas, las optimizaciones son posibles para mejorar el rendimiento de un solución recursiva. Un ejemplo típico se relaciona con un tipo de recursividad conocida como cola. recursividad Una solución recursiva de cola es aquella en la que el cálculo se realiza antes de la llamada recursiva. El resultado se pasa luego al paso recursivo, que da como resultado que la última declaración en la función simplemente llame a la función recursiva. En tales situaciones, la solución recursiva se puede expresar (internamente a la sistema informático) como un problema iterativo. Ese es el programador escribe la solución. como un algoritmo recursivo pero el intérprete o compilador lo convierte en un iterativo solución. Esto permite a los programadores beneficiarse de la naturaleza expresiva de recur- mientras que también se beneficia del rendimiento de una solución iterativa. Se podría pensar que la función factorial presentada anteriormente es cola recur- sivo; sin embargo, no es porque la última declaración en la función realiza un cálculo cálculo que multiplica n por el resultado de la llamada recursiva. Sin embargo, podemos refactorizar la función factorial para que sea recursiva de cola. Este versión de la función factorial pasa el resultado evolutivo a través del parámetro del acumulador. Se da como referencia aquí: def tail_factorial(n, acumulador=1): si n == 0: acumulador de retorno demás: return tail_factorial(n - 1, acumulador * n) imprimir (cola_factorial (5)) 104 9 recursividad
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