La recurrencia
Recurrencia, recursión o recursividad es la
forma en la cual se especifica un proceso basado en su propia
definición, siendo ésta característica discernible en términos de autorreferencialidad, autopoiesis, fractalidad, o, en otras palabras, construcción a partir de un mismo tipo. Con ánimo de una mayor precisión, y para evitar la aparente circularidad en esta definición, se formula el concepto de recursión o recurrencia de la siguiente manera:
Un problema que pueda ser definido en función de su tamaño, sea este
N, pueda ser dividido en instancias más pequeñas (< N) del mismo
problema y se conozca la solución explícita a las instancias más
simples, lo que se conoce como casos base, se puede aplicar recurrencia sobre las llamadas más pequeñas y suponer que estas quedan resueltas.
- Factorial: Se desea calcular
(el factorial de
, que se define como el producto de todos los enteros positivos de
a
). Se puede definir el problema de forma recurrente como
; como
es menor que
podemos aplicar inducción por lo que disponemos del resultado. El caso base es
que es
.
- Algoritmo de ordenación por fusión: Sea v un vector de n elementos, podemos separar el vector en dos mitades. Estas dos mitades tienen tamaño n/2 por lo que por inducción podemos aplicar la ordenación en estos dos subproblemas. Una vez tenemos ambas mitades ordenadas simplemente debemos fusionarlas. El caso base es ordenar un vector de cero o un elemento, que está trivialmente ordenado y no hay que hacer nada.
Cálculo de factoriales por recurrencia (en Scratch):
Diagrama de flujo del cálculo de factoriales:

Que bonito!!!
ResponderEliminar