recursividad en python

Còmo utilizar la recursividad de Python

La recursividad de Python es un tema intimidante para los principiantes. Disipemos el mito de que la recursividad es difìcil definiéndola. La recursividad es un método de programaciòn en el que una funciòn se llama a sì misma.

Eso suena simple, ¿verdad? Cuando lo domine, la recursividad no es un concepto difìcil.

En este tutorial de Python, vamos a hablar sobre la recursividad y còmo funciona. Veremos un ejemplo de recursividad usando funciones factoriales para ayudarlo a comenzar con este método de programaciòn.

¿Qué es la recursividad?

La recursividad es donde se define algo en términos de a sì misma.

Una funciòn recursiva resuelve problemas llamándose a sì misma de nuevo. Este comportamiento es compatible con la mayorìa de los principales lenguajes de programaciòn, como Python. Son una parte crucial de la informática y la ciencia de datos.

La recursividad es √∫til cuando se puede encontrar la soluciòn a un problema dividiéndolo en problemas más peque√±os que utilizan la misma fòrmula. Este tipo de problemas a menudo se denominan "algoritmos recursivos". ¬°La clave para resolverlos está en el nombre!

Iterativo frente a recursivo

Hay dos formas de resolver un algoritmo: de forma iterativa o recursiva.

Las soluciones iterativas para algoritmos se consideran "poderosas pero feas". Hacen el trabajo, pero no lo hacen exactamente de la manera más elegante. Para comprender correctamente los algoritmos recursivos, debemos analizar las funciones iterativas.

El 81% de los participantes afirmaron que se sentìan más seguros acerca de sus perspectivas laborales después de asistir a un campamento de entrenamiento. Asòciese a un bootcamp hoy.

El graduado promedio de un bootcamp pasò menos de seis meses en la transiciòn profesional, desde comenzar un bootcamp hasta encontrar su primer trabajo.

Un function es una funciòn que resuelve un problema usando un bucle. Ejecutará el còdigo dentro de un bucle hasta que ese bucle se complete. Una funciòn recursiva es una funciòn que divide un problema en partes más peque√±as y resuelve cada parte llamándose a sì misma.

Factoriales: el ejemplo iterativo

Los factoriales son una buena forma de demostrar la recursividad y pensamiento iterativo. En matemáticas, los factoriales son la suma de un n√∫mero y cada n√∫mero antes de multiplicarlo.

El factorial de 5 es igual a 5 * 4 * 3 * 2 * 1. El factorial de 2 es igual a 2 * 1.

Para calcular un factorial, podemos escribir una funciòn iterativa:

Esta funciòn usa un for loop para iterar a través de todos los n√∫meros en el rango de 1 y el n√∫mero que hemos especificado más 1. Para cada iteraciòn, el n√∫mero sobre el que itera el ciclo se multiplica por el total. Llamemos a nuestra funciòn para encontrar el factorial:

Nuestro còdigo devuelve: 24. Para llegar a esta soluciòn, nuestro còdigo se ejecuta:

  • 1 * 1 = 1
  • 2 * 2 = 4
  • 4 * 3 = 8
  • 8 * 4 = 24

Como puede ver, nuestro còdigo multiplica 4 con todos los n√∫meros más bajos que él y luego él mismo.

Este còdigo es funcional. El √∫nico inconveniente es que no es tan elegante como podrìa ser. Ahì es donde las funciones recursivas son √∫tiles.

Factoriales: el ejemplo de recursividad

Escribamos una funciòn recursiva que calcule un factorial. Abra un nuevo archivo Python y pegue el siguiente còdigo:

Este còdigo usa el enfoque recursivo. Cuando se ejecuta esta funciòn, un " if " se ejecuta la sentencia . Esta declaraciòn verifica si el n√∫mero pasado a la funciòn es igual a 1. Si lo es, nuestra funciòn devuelve 1. De lo contrario, se calcula el factorial de nuestro n√∫mero.

Este cálculo funciona multiplicando el n√∫mero pasado a la funciòn por el factorial del n√∫mero anterior. Esta funciòn se llama una y otra vez hasta que " number " es igual a 1. Cada vez que se llama a la funciòn, el valor de " n√∫mero " se reduce en 1.

Probemos nuestro còdigo con el n√∫mero 4:

Se devuelve la respuesta 24. Nuestra respuesta es correcta; es la misma que en nuestro √∫ltimo ejemplo. Hemos encontrado la soluciòn a este problema de forma recursiva en lugar de iterativa.

¿A√∫n necesitas un poco de ayuda? Veamos otro ejemplo de recursividad.

Recursiòn con la secuencia de Fibonacci < / h2>

La secuencia de fibonacci es una secuencia matemática donde cada n√∫mero es la suma de los dos n√∫meros anteriores. Esta secuencia comienza con: 0, 1, 1, 2, 3, 5, 8, 13, etc.

Esta secuencia agrega dos n√∫meros para encontrar el siguiente n√∫mero. Esto lo hace ideal para la recursividad.

Abra un archivo Python y pegue este còdigo: < br>

Este còdigo calculará la suma de dos n√∫meros precedentes en una lista, siempre que " n√∫mero " es más de 1. De lo contrario, "se devuelve el n√∫mero". Ahora, llamemos a nuestra funciòn:

"Career Karma entrò en mi vida cuando más lo necesitaba y rápidamente me ayudò a combinar con un bootcamp. Dos meses después de graduarme, encontré el trabajo de mis sue√±os que alineado con mis valores y metas en la vida! "

Venus, ingeniero de software en Rockbot

La variable de ejecuciones rastrea cuántos n√∫meros en el secuencia de Fibonacci que queremos calcular. Usamos esto para crear un bucle for que llama a nuestra funciòn fibonacci () para cada n√∫mero en el rango de 1 y el valor de " ejecuciones. & Rdquo;

Antes de que comience nuestro bucle for, imprimimos " Secuencia de Fibonacci: " a la consola. En este ejemplo, nuestro " for " El bucle ejecuta:

Ejecutemos nuestro còdigo todos juntos y veamos qué sucede:

Nuestro còdigo calcula los primeros cinco n√∫meros de la secuencia de Fibonacci. Podrìamos calcular más n√∫meros aumentando el valor de " ejecuciones & rdquo ;.

Profundidad de recursiòn y condiciones base

Una funciòn recursiva debe tener una condiciòn base. Esta es una condiciòn que detiene la recursividad cuando se cumple un caso base particular. Sin una funciòn base, se creará un bucle infinito.

Una funciòn recursiva no puede ejecutarse más de 1000 veces por defecto. Una vez que se alcanza este lìmite, aparece un error como este:

Aquì está la condiciòn base para nuestro programa de fibonacci:

Esta condiciòn comprueba si el valor de " n√∫mero " dentro de nuestro programa de fibonacci es igual o menor que 1. Si lo es, se devuelve el valor de " n√∫mero " de lo contrario, se inicia la funciòn recursiva.

Por qué ¿Debo usar la recursividad?

¿Cuál es la ventaja de usar la recursividad sobre las funciones iterativas? Técnicamente, ambos métodos pueden lograr el mismo resultado. La recursividad es que es más fácil de leer.

Cuando ve una funciòn recursiva, está claro que la respuesta a un problema radica en dividirla en partes más peque√±as. Si bien los bucles iterativos a veces pueden ser más rápidos, las funciones recursivas generalmente se prefieren debido a su legibilidad.

Debido a que las funciones recursivas son más fáciles de leer, también son más fáciles de mantener y depurar. Esto es especialmente √∫til cuando está escribiendo algoritmos complejos que pueden ser difìciles de entender.

Conclusiòn

Una funciòn recursiva es una funciòn que se llama a sì misma para encontrar la soluciòn a un problema. & Nbsp ;

Las funciones recursivas dividen un problema en varias partes y resuelven una parte del problema por iteraciòn. Las funciones recursivas se utilizan com√∫nmente para calcular factoriales y n√∫meros en la secuencia de fibonacci. También se utilizan en varios algoritmos.

Ahora está listo para comenzar a trabajar con funciones recursivas en Python.

Shop

Learn programming in R: courses

$

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Latest questions

NUMPYNUMPY

psycopg2: insert multiple rows with one query

12 answers

NUMPYNUMPY

How to convert Nonetype to int or string?

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Javascript Error: IPython is not defined in JupyterLab

12 answers

News


Wiki

Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | cv2.circle () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method