Recurso de aprendizaje en Python

Introducción

En Ciencias de la Computación, el reciclaje es un método para encontrar una solución a un problema más grande mediante el uso de la solución de subproblemas más pequeños del mismo problema. Significa que descomponemos problemas mucho más complejos en piezas únicas o más simples, luego los resolvemos y usamos sus soluciones para resolver ese problema complejo al unirlos de manera colectiva.

Significa que se llega a la etapa final cuando se cumple alguna condición básica. La Solución para cada paso se usa para resolver el paso anterior y la solución para todos los pasos juntos desde la solución hasta el problema completo. Así, cuando los subproblemas son instancias del problema original, esta técnica se denomina recursión.

Por lo tanto, debemos usar la iteración solo si el problema se puede dividir en subproblemas más pequeños o si debemos considerar otras opciones. Cuando hablamos de codificar un problema en los aspectos de programación esta es la forma en que “una función en sí misma es llamada directa o indirectamente una o más veces en su cuerpo” y en respuesta a esa llamada devuelve un “valor de retorno” a eso. Llamada de función.

👉 Conoce cual es el mejor framework para python

Ejemplo: – El ejemplo más común de regresión que podríamos entender fácilmente es el factor de un número, algunos otros ejemplos de esto son el Problema de la Torre de Hanoi y el Problema de las Nueve Escaleras.

Una función recursiva en Python:

La función recursiva no usa ninguna sintaxis especial en Python, pero definirlas correctamente requiere cierto cuidado. Una forma de describir la recursión en Python es mediante el uso de sus construcciones de bucle y recursión y bucle y recursión de una manera completamente diferente para lograr la recursión. Como sabemos en python, una función puede llamarse otras funciones, así que aquí una función puede incluso llamarse por sí misma
durante la ejecución y en respuesta a esa llamada, devuelven el valor de retorno.

Una función recursiva en Python se parece a:

Python

Cuando usamos las matemáticas en Ciencias de la Computación, encontramos el factor de un número que es: –

factorial

Como sabemos que el factor de cualquier número es el producto de todos los enteros desde ese número hasta 1.

👉 Aprende sobre operadores ternarios python

Un ejemplo de una función recursiva:

  1. el factor problema
    Ejemplo: cuando tratamos de encontrar un factor de 6, ¡se establece como 6!
    ¡Son solo 6!= 65432*1=720

factorial

Aquí factorial() es una función recursiva donde ingresamos una entrada como x=3

So, the whole procedure like:-
Factorial(3)
3factorial(2) 32factorial(1)
321
3*2
6

Aquí está 6 el valor que podríamos obtener después de ingresar nuestra entrada como x=3. Detrás de todo este procedimiento, cada llamada recursiva agrega un framework de pila a la pila de llamadas hasta llegar a los casos base. Luego, la pila comienza a descargarse a medida que cada llamada devuelve sus resultados. Entonces, tal proceso se repetiría por un período indefinido a menos que se detengan en algunos casos y tales casos se denominan casos base. En todo programa recursivo, debe tener un caso base o el programa seguirá funcionando para siempre como un bucle infinito y puede surgir StackOverflow.

En nuestro caso, la iteración finaliza cuando el número se reduce a 1, por lo tanto, aquí factorial (1) es un caso base en el que ya conocemos el valor del factorial. El caso base se define en el cuerpo de una función. Los casos donde los casos recursivos se llaman n>1 y cuando tenemos nuestros casos base n<=1.

Un caso más ocurre cuando hablamos de una función recursiva caso recursivo que son sólo las reglas que satisfacen los criterios de la función de recurrencia.

👉 Lo que necesitas saber de python variables globales

2.Problema de la torre de Hanoi
En este problema, solo podemos pasar por un enfoque teórico básico para comprender cómo podemos resolverlo usando la recursividad. Como hay tres postes y n discos concéntricos con forma de pirámide, nuestro objetivo principal es mover n discos del poste A al poste C usando el poste B, continuando
estas tres reglas: –

  • Solo podemos mover un disco a la vez.
  • Un disco no se puede «descartar». Sólo se puede apilar en uno de los
    tres trabajos.
  • Nunca se puede colocar un disco más grande encima de uno más pequeño.

Solución del problema:-

  • Cree una función de Hanoi que tome el número de discos n y los nombres de la fuente, las potencias auxiliares y los polos de destino como argumentos.
  • Mueva n-1 discos del trabajo de origen al trabajo auxiliar utilizando el trabajo de destino como trabajo auxiliar
  • Mueva el disco restante del origen al destino.
  • Mueva los discos n-1 del puerto auxiliar al trabajo de destino utilizando el trabajo de origen como auxiliar.
  • Para simplificar, es el trabajo de origen, el trabajo auxiliar y el trabajo de destino
    tratados como A, B y C respectivamente.

¿Cuál debería ser el caso base?

Este es el caso base donde el número de discos es 1, en este caso, podemos mover un disco de A a B y viceversa.

👉 Recomendado: árboles de decisión machine learning

Estrategia para resolver un problema recurrente:

La estrategia para resolver un problema recursivo es que primero debemos pensar en el problema más pequeño y resolverlo, que es solo escribir un caso base, ahora, cuando resolvemos el caso base, pasamos por el caso recursivo y al final. tenemos que juntar todos estos casos pequeños para resolver los casos grandes, así que combinando el caso básico y los casos recursivos encontramos una solución a nuestros problemas básicos que pueden ser de cualquier tamaño.

Ventajas de usar Recursión:

  • Al usar recursividad en nuestro código, podemos hacer que nuestro programa sea limpio y elegante.
  • Con esto, mediante el uso de la recursividad, podemos resolver los programas cada vez más complejos dividiéndolos en subproblemas más simples y encontrar la solución mediante la cual resolvemos toda la tarea juntos.
  • En Recursion, se necesitan menos líneas de código para resolver un problema.
  • Una cosa que es más fácil, usando recursividad, es esa secuencia de generación en lugar de usar varias iteraciones anidadas

Desventajas de usar Recursión:

  • A veces es difícil seguir la lógica detrás del reciclaje porque no todos los problemas se pueden resolver mediante el reciclaje.
  • Aquí, si no define los casos base, el código se ejecutará indefinidamente.
  • Las llamadas recursivas son ineficientes porque ocupan mucho espacio de memoria y tiempo.
  • Son difíciles de depurar porque la función se llama a sí misma en un bucle y es difícil entender qué llamada está causando el problema.

👉 Conoce quien creó python

Preguntas frecuentes

¿Cómo se codifica la recursividad?

Para ver el código en recursividad, puedes buscar funciones recursivas en c, funciones recursivas en python, funciones recursivas en java, funciones recursivas en c++ o funciones recursivas en estructuras de datos en general.

¿Qué es la recurrencia con un ejemplo?

La recursividad es el fenómeno en la programación cuando una función, llamada función recursiva, se llama a sí misma directa o indirectamente en función de ciertas condiciones.
Ejemplo:
repetir vacío (int n) {
si regresa(n==0);
otro
repetir (n-1);
}

¿Qué es la repetición en el lenguaje?

La regresión en el lenguaje es el fenómeno de repetir cosas de una manera que se asemeja a la cosa principal.

¿Para qué sirve la recurrencia?

La recursividad se utiliza para descomponer un problema complejo en uno más simple.

¿Qué es un pensamiento recursivo?

El pensamiento recursivo es el proceso de analizar un problema y dividirlo en problemas más pequeños.

¿Qué es una proporción de reciclaje?

La sintaxis recursiva es la sintaxis en la que se escribe una llamada recursiva que contiene el nombre de la llamada recursiva y los argumentos, si los hay.

Conclusión

Entonces, podemos concluir de nuestra discusión anterior que Recursion es la herramienta más poderosa que debe estar en nuestra Caja de herramientas de resolución de problemas. En muchos casos, nos proporciona una solución natural y elegante a los programas mucho más complejos. Si la versión recursiva y el bucle para resolver un problema son similares, debemos elegir nuestra versión de bucle para evitar la memoria. Pero incluso en esos casos, la iteración nos proporciona una forma creativa de pensar en cómo se podría resolver un problema.