La recursión o recursividad es la forma en la cual se especifica un proceso basado en su propia definición.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 de la siguiente manera:
La recursión tiene esta característica discernible en términos deUn problema que pueda definirse en función de su tamaño, sea este N, puede dividirse en instancias más pequeñas (< N) del mismo problema y se conocerá la solución explícita a las instancias más simples, lo que se conoce como casos base, y se puede aplicar inducción sobre las llamadas más pequeñas y suponer que estas quedan resueltas.[cita requerida]
A continuación se exponen algunos ejemplos:
En estos ejemplos puede observarse cómo un problema se divide en varias (una o más) instancias del mismo problema, pero de tamaño menor, gracias a lo cual se puede aplicar inducción, llegando a un punto donde se conoce el resultado (el caso base).[cita requerida]
Un ejemplo de conjunto definido de forma recurrente es el de los números naturales, es decir, el conjunto de los números enteros no negativos:
Aquellas funciones cuyo dominio es un conjunto a lo más enumerable pueden ser definidas de forma recurrente.
Un ejemplo conocido es la definición recurrente de la función factorial n!:
Veamos cómo se usa esta definición para hallar el valor del factorial de 3:
Otros ejemplos de funciones y sucesiones matemáticas definidas de forma recursiva son:
La razón áurea se puede definir de forma recursiva, como una fracción continua en que todos los números son unos:
De forma similar, la identidad da lugar a una definición como fracción continua de cualquier raíz cuadrada:
Resolución de ecuaciones homogéneas de primer grado, segundo orden:
a) Se pasan al primer miembro los términos , , , los cuales también podrían figurar como , ,
b) Se reemplaza por , por y por , quedando una ecuación de segundo grado con raíces reales y distintas y .
c) Se plantea
d) Debemos tener como dato los valores de los dos primeros términos de la sucesión: y . Utilizando estos datos ordenamos el sistema de 2x2:
La resolución de este sistema nos da como resultado los valores y , que son números reales conocidos.
e) La solución general es:
En programación, un método usual de simplificación de un problema complejo es la división de este en subproblemas del mismo tipo. Esta técnica de programación se conoce como divide y vencerás y es el núcleo en el diseño de numerosos algoritmos de gran importancia, así como también es parte fundamental de la programación dinámica.
Implementación en C:
Implementación en C++:
Implementación en Pascal:
Implementación en Python:
El seguimiento de la recursividad programada es casi exactamente igual a los ejemplos antes dados, para intentar ayudar a que se entienda mejor se ha acompañado con muchas explicaciones y con colores que diferencia los distintos sub-procesos de la recursividad.
La recursividad se emplea a menudo de forma humorística en textos informáticos, filosóficos o matemáticos. No es raro que un libro de texto de estas disciplinas incluya en su glosario una entrada similar a esta:
En el buscador Google, al buscar «recursión», el sitio sugiere «Quizá quisiste decir: recursión».
Un chiste informático dice así«:Lo primero para entender la recursividad, es entender la recursividad».PHP son las iniciales de PHP Hypertext Preprocessor (Preprocesador de Hipertexto PHP), WINE son las de WINE Is Not an Emulator (WINE no es un emulador) y GNU significa GNU's Not Unix (GNU no es Unix).
En la informática también es común la elección de acrónimos recursivos.Escribe un comentario o lo que quieras sobre Recursividad (directo, no tienes que registrarte)
Comentarios
(de más nuevos a más antiguos)