Recursión
Un procedimiento o función puede contener una llamada a otro procedimiento dentro de él. Incluso, la subrutina puede llamarse a sí misma. En este caso, a la computadora no le importa. También, como siempre, ejecuta consistentemente los comandos que conoce de arriba a abajo.
Si recuerdas las matemáticas, ahí podrás conocer
el principio de inducción matemática. Es el siguiente:
algún enunciado es verdadero para todo
n natural si
1. es válido para
n = 1
y
2. de la validez del enunciado para cualquier
n = k
natural arbitrario se sigue que es verdadero para
n = k + 1.
En programación, esta técnica se llama
recursión.
Recursividad es una forma de definir un conjunto de objetos en términos del propio conjunto, en función de casos base simples.
Recursivoes un procedimiento (función) que se llama a sí mismo directamente o a través de otros procedimientos y funciones.
Ejemplo
def Rec(a):
si (a>0): Rec(a-1)
imprimir (a)
Esquemáticamente, el trabajo de la recursividad se puede representar mediante un diagrama de flujo
El procedimiento Rec() se ejecuta con el parámetro 3. Luego, dentro del procedimiento con el parámetro 3, se llama al procedimiento con el parámetro 2, y así sucesivamente, hasta que se llama al procedimiento con el parámetro 0. Cuando se llama al procedimiento con el parámetro 0, la llamada recursiva ya no ocurrirá y el procedimiento con parámetro 0 imprimirá el número 0 y saldrá. Luego, el control se transfiere nuevamente al procedimiento con el parámetro 1, también termina su trabajo imprimiendo el número 1, y así sucesivamente. antes del procedimiento con el parámetro 3.
Todos los procedimientos llamados se almacenan en la memoria hasta que completan su trabajo. El número de procedimientos concurrentes se denomina profundidad de recurrencia
.