La recursión se produce cuando la definición de un concepto o proceso depende de una versión anterior o más simple de sí mismo. [ 1 ] La recursión se utiliza en diversas disciplinas, desde la lingüística hasta la lógica . Su aplicación más común se da en matemáticas e informática , donde una función que se está definiendo se aplica dentro de su propia definición. Si bien esto aparentemente define un número infinito de instancias (valores de la función), a menudo se realiza de tal manera que no se produzcan bucles infinitos ni cadenas infinitas de referencias.
Un proceso que presenta recursión es recursivo . La retroalimentación de video muestra imágenes recursivas, al igual que un espejo infinito .
Definiciones formales

En matemáticas e informática, una clase de objetos o métodos presenta un comportamiento recursivo cuando puede definirse mediante dos propiedades:
- Un caso base simple (o varios casos): un escenario final que no utiliza recursión para producir una respuesta.
- Un paso recursivo : un conjunto de reglas que reduce todos los casos sucesivos hacia el caso base.
Por ejemplo, la siguiente es una definición recursiva del antepasado de una persona . El antepasado de una persona es:
- El padre de uno ( caso base ), o
- Antepasado de los padres ( paso recursivo ).
La sucesión de Fibonacci es otro ejemplo clásico de recursión:
- Fib(0) = 0 como caso base 1,
- Fib(1) = 1 como caso base 2,
- Para todos los enteros n > 1 , Fib( n ) = Fib( n − 1) + Fib( n − 2) .
Muchos axiomas matemáticos se basan en reglas recursivas. Por ejemplo, la definición formal de los números naturales según los axiomas de Peano se puede describir como: «El cero es un número natural, y cada número natural tiene un sucesor, que también es un número natural». [ 2 ] Mediante este caso base y regla recursiva, se puede generar el conjunto de todos los números naturales.
Otros objetos matemáticos definidos recursivamente incluyen factoriales , funciones (por ejemplo, relaciones de recurrencia ), conjuntos (por ejemplo, el conjunto ternario de Cantor ) y fractales .
Existen varias definiciones más irónicas de recursión; véase humor recursivo .
Definición informal

La recursión es el proceso que sigue un procedimiento cuando uno de sus pasos implica la invocación del propio procedimiento. Un procedimiento que realiza una recursión se denomina «recursivo». [ 3 ]
Para comprender la recursión, es necesario reconocer la distinción entre un procedimiento y la ejecución de un procedimiento. Un procedimiento es un conjunto de pasos basados en un conjunto de reglas, mientras que la ejecución de un procedimiento implica seguir esas reglas y realizar los pasos.
La recursión está relacionada con, pero no es lo mismo que, una referencia dentro de la especificación de un procedimiento a la ejecución de algún otro procedimiento.
Cuando se define un procedimiento de esta manera, se crea inmediatamente la posibilidad de un bucle infinito; la recursión solo se puede utilizar correctamente en una definición si el paso en cuestión se omite en ciertos casos para que el procedimiento pueda completarse.
Aunque esté bien definido, un procedimiento recursivo no es fácil de ejecutar para los humanos, ya que requiere distinguir entre la invocación nueva y la anterior, que se ejecuta parcialmente. Esto exige cierta gestión para saber hasta dónde han avanzado las distintas instancias simultáneas del procedimiento. Por este motivo, las definiciones recursivas son muy poco frecuentes en situaciones cotidianas.
En el idioma
El lingüista Noam Chomsky , entre muchos otros, ha argumentado que la falta de un límite superior en el número de oraciones gramaticales en un idioma, y la falta de un límite superior en la longitud de las oraciones gramaticales (más allá de las restricciones prácticas como el tiempo disponible para pronunciar una), puede explicarse como consecuencia de la recursión en el lenguaje natural. [ 4 ] [ 5 ]
Hay muchas estructuras, además de las oraciones, que pueden definirse recursivamente y, por lo tanto, muchas maneras en que una oración puede incrustar instancias de una categoría dentro de otra. [ 6 ] A lo largo de los años, los lenguajes en general han demostrado ser susceptibles a este tipo de análisis.
La idea generalmente aceptada de que la recursión es una propiedad esencial del lenguaje humano ha sido cuestionada por Daniel Everett basándose en sus afirmaciones sobre la lengua pirahã . Andrew Nevins, David Pesetsky y Cilene Rodrigues se encuentran entre muchos que han argumentado en contra de esto. [ 7 ] En cualquier caso, se puede argumentar que la autorreferencia literaria es de naturaleza distinta a la recursión matemática o lógica. [ 8 ]
La recursión desempeña un papel crucial no solo en la sintaxis, sino también en la semántica del lenguaje natural . La palabra " and ", por ejemplo, puede interpretarse como una función que se aplica a los significados de las oraciones para crear nuevas oraciones, y de igual manera a los significados de las frases nominales, las frases verbales, etc. También puede aplicarse a verbos intransitivos, transitivos o ditransitivos. Para proporcionar una única denotación suficientemente flexible, " and" se define típicamente de manera que pueda tomar cualquiera de estos diferentes tipos de significados como argumentos. Esto se puede lograr definiéndola para un caso simple en el que combina oraciones, y luego definiendo los demás casos recursivamente en términos del caso simple. [ 9 ]
Una gramática recursiva es una gramática formal que contiene reglas de producción recursivas . [ 10 ]
Humor recursivo
La recursión se utiliza a veces con humor en libros de texto de informática, programación, filosofía o matemáticas, generalmente mediante una definición circular o una autorreferencia , en la que el supuesto paso recursivo no se acerca a un caso base, sino que conduce a una regresión infinita . No es raro que dichos libros incluyan una entrada humorística en su glosario del tipo:
- Recursión, véase Recursión . [ 11 ]
Una variante se encuentra en la página 269 del índice de algunas ediciones del libro de Brian Kernighan y Dennis Ritchie , The C Programming Language ; la entrada del índice se refiere recursivamente a sí misma ("recursion 86, 139, 141, 182, 202, 269"). Versiones tempranas de este chiste se pueden encontrar en Let's talk Lisp de Laurent Siklóssy (publicado por Prentice Hall PTR el 1 de diciembre de 1975, con fecha de copyright de 1976) y en Software Tools de Kernighan y Plauger (publicado por Addison-Wesley Professional el 11 de enero de 1976). El chiste también aparece en The UNIX Programming Environment de Kernighan y Pike. No apareció en la primera edición de The C Programming Language . El chiste forma parte del folclore de la programación funcional y ya estaba muy extendido en la comunidad de programación funcional antes de la publicación de los libros mencionados. [ 12 ] [ 13 ]

Otro chiste es que "Para entender la recursión, hay que entender la recursión". [ 11 ] En la versión en inglés del buscador web de Google, cuando se busca "recursión", el sitio sugiere "¿Quiso decir: recursión ?". [ 14 ] Una forma alternativa es la siguiente, de Andrew Plotkin : "Si ya sabes qué es la recursión, simplemente recuerda la respuesta. De lo contrario, busca a alguien que esté más cerca de Douglas Hofstadter que tú; luego pregúntale qué es la recursión".
Los acrónimos recursivos son otros ejemplos de humor recursivo. PHP , por ejemplo, significa "PHP Hypertext Preprocessor" (Preprocesador de hipertexto PHP), WINE significa "WINE no es un emulador", RPM significa "RPM Package manager" (Administrador de paquetes RPM), GNU significa "GNU no es Unix" (GNU no es Unix) y SPARQL denota el "Protocolo SPARQL y lenguaje de consulta RDF".
En matemáticas

Conjuntos definidos recursivamente
Ejemplo: los números naturales
El ejemplo canónico de un conjunto definido recursivamente viene dado por los números naturales :
- 0 está en
- si n está en, entonces n + 1 está en
- El conjunto de los números naturales es el conjunto más pequeño que satisface las dos propiedades anteriores.
En lógica matemática, los axiomas de Peano (o postulados de Peano o axiomas de Dedekind-Peano) son axiomas para los números naturales presentados en el siglo XIX por el matemático alemán Richard Dedekind y por el matemático italiano Giuseppe Peano . Los axiomas de Peano definen los números naturales en relación con una función sucesora recursiva y consideran la suma y la multiplicación como funciones recursivas.
Ejemplo: Procedimiento de demostración
Otro ejemplo interesante es el conjunto de todas las proposiciones "demostrables" en un sistema axiomático que se definen en términos de un procedimiento de prueba que se define inductivamente (o recursivamente) de la siguiente manera:
- Si una proposición es un axioma, es una proposición demostrable.
- Si una proposición puede derivarse de proposiciones verdaderas alcanzables mediante reglas de inferencia, es una proposición demostrable.
- El conjunto de proposiciones demostrables es el conjunto más pequeño de proposiciones que satisfacen estas condiciones.
Reglas de subdivisión finita
Las reglas de subdivisión finita son una forma geométrica de recursión que se puede utilizar para crear imágenes fractales. Una regla de subdivisión comienza con una colección de polígonos etiquetados con un número finito de etiquetas, y luego cada polígono se subdivide en polígonos etiquetados más pequeños de una manera que depende únicamente de las etiquetas del polígono original. Este proceso se puede iterar. La técnica estándar de los "tercios centrales" para crear el conjunto de Cantor es una regla de subdivisión, al igual que la subdivisión baricéntrica .
Recursión funcional
Una función puede definirse recursivamente en términos de sí misma. Un ejemplo conocido es la sucesión de Fibonacci : F ( n ) = F ( n -1) + F ( n -2). Para que dicha definición sea útil, debe poder reducirse a valores definidos de forma no recursiva: en este caso, F (0) = 0 y F (1) = 1.
Demostraciones que involucran definiciones recursivas
La aplicación de la técnica estándar de demostración por casos a conjuntos o funciones definidos recursivamente, como en las secciones anteriores, produce la inducción estructural , una poderosa generalización de la inducción matemática ampliamente utilizada para derivar demostraciones en lógica matemática e informática.
Optimización recursiva
La programación dinámica es un método de optimización que reformula un problema de optimización multiperíodo o multipaso de forma recursiva. El resultado clave en la programación dinámica es la ecuación de Bellman , que expresa el valor del problema de optimización en un momento anterior (o paso anterior) en función de su valor en un momento posterior (o paso posterior).
El teorema de recursión
En teoría de conjuntos , este es un teorema que garantiza que existen funciones definidas recursivamente. Dado un conjunto X , un elemento a de X y una función f : X → X , el teorema establece que existe una única función(dóndedenota el conjunto de números naturales (incluido el cero) tales que
para cualquier número natural n .
Dedekind fue el primero en plantear el problema de la definición única de funciones de la teoría de conjuntos enpor recursividad, y esbozó un argumento en el ensayo de 1888 "Was sind und was sollen die Zahlen?" [ 15 ]
Prueba de existencia
Fuente: [ 16 ]
Dejar.
S no está vacío ya que. Dejar. Ahoraya que está en todos. Además, sientoncesa pesar dePero entonces...a pesar dede modo que. Por lo tantoy es el elemento más pequeño de S.
Dejar. Ahoradesde. Suponer. Entoncespara algunosEsto da. Por esoPor inducción matemática se deduce que.
DejarSupongamos por contradicción que. Es decir, supongamos que tenemos, además,, dónde. Entonces , lo cual contradice el hecho de que g es el elemento más pequeño de S. Por lo tanto,.
Demostramos que sientoncesSupongamos que este no es el caso. Entoncesde modo que. Desdey, hay una únicacon. Entonces. Desde, hay un, además de, dóndePero entonces..., contradiciendo el hecho de que g es el elemento más pequeño de S. La inducción matemática entonces dice quePor lo tanto, existe una función cuya gráfica es g. Denominémosla F.
Prueba de singularidad
Toma dos funcionesyde tal manera que:
donde a es un elemento de X.
Se puede demostrar por inducción matemática que F ( n ) = G ( n ) para todos los números naturales n :
- Caso base : F (0) = a = G (0) por lo que la igualdad se cumple para n = 0 .
- Paso inductivo : Supongamos que F ( k ) = G ( k ) para algún. Entonces F ( k + 1) = f ( F ( k )) = f ( G ( k )) = G ( k + 1) .
- Por lo tanto, F ( k ) = G ( k ) implica F ( k + 1) = G ( k + 1) .
Por inducción, F ( n ) = G ( n ) para todo.
En ciencias de la computación
Un método común de simplificación consiste en dividir un problema en subproblemas del mismo tipo. En programación , esta técnica se denomina divide y vencerás y es fundamental para el diseño de muchos algoritmos importantes. Divide y vencerás es un enfoque descendente para la resolución de problemas, donde estos se resuelven solucionando instancias cada vez más pequeñas. Un enfoque opuesto es la programación dinámica . Este enfoque es ascendente, donde los problemas se resuelven solucionando instancias cada vez más grandes hasta alcanzar el tamaño deseado.
Un ejemplo clásico de recursión es la definición de la función factorial , que se muestra aquí en código Python :
def factorial ( n ): if n > 0 : return n * factorial ( n - 1 ) else : return 1La función se llama a sí misma recursivamente en una versión más pequeña de la entrada (n - 1)y multiplica el resultado de la llamada recursiva por n, hasta llegar al caso base , de forma análoga a la definición matemática de factorial.
La recursión en la programación informática se ejemplifica cuando una función se define en términos de versiones más simples, a menudo más pequeñas, de sí misma. La solución al problema se obtiene combinando las soluciones derivadas de estas versiones más simples. Un ejemplo de aplicación de la recursión se encuentra en los analizadores sintácticos de lenguajes de programación. La gran ventaja de la recursión es que un programa informático finito puede definir, analizar o generar un conjunto infinito de posibles oraciones, diseños u otros datos.
Las relaciones de recurrencia son ecuaciones que definen una o más secuencias de forma recursiva. Algunos tipos específicos de relaciones de recurrencia pueden "resolverse" para obtener una definición no recursiva (por ejemplo, una expresión en forma cerrada ).
El uso de la recursión en un algoritmo presenta ventajas y desventajas. La principal ventaja suele ser la simplicidad de las instrucciones. La principal desventaja es que el consumo de memoria de los algoritmos recursivos puede aumentar muy rápidamente, lo que los hace poco prácticos para instancias de gran tamaño.
En biología
En plantas y animales a veces aparecen formas que parecen haber sido creadas por procesos recursivos, como en las estructuras ramificadas en las que una parte grande se ramifica en dos o más partes más pequeñas similares. Un ejemplo es el brócoli romanesco . [ 17 ]
En los negocios
En la ciencia de la administración, la recursión se define a veces como el proceso de iterar a través de niveles de abstracción en grandes entidades empresariales. [ 18 ] Un ejemplo común es la naturaleza recursiva de las jerarquías de gestión , que van desde la gestión de línea hasta la alta dirección , pasando por la gestión intermedia . También abarca la cuestión más amplia de la estructura de capital en el gobierno corporativo . [ 19 ]
En el arte


La muñeca Matryoshka es un ejemplo artístico físico del concepto recursivo. [ 20 ]
La recursión se ha utilizado en pinturas desde el Tríptico Stefaneschi de Giotto , realizado en 1320. Su panel central contiene la figura arrodillada del Cardenal Stefaneschi, sosteniendo el tríptico como una ofrenda. [ 21 ] [ 22 ] Esta práctica se conoce más generalmente como el efecto Droste , un ejemplo de la técnica Mise en abyme .
La obra Print Gallery (1956) de M.C. Escher es un grabado que representa una ciudad distorsionada que contiene una galería que, a su vez, contiene recursivamente la imagen, y así sucesivamente hasta el infinito . [ 23 ]
En la cultura
La película Origen popularizó la adición del sufijo -cepción a un sustantivo para indicar, en tono de broma, la recursión de algo. [ 24 ]
Véase también
- Correcursión – Tipo de algoritmo en informática
- Recursión de curso de valores : técnica para definir funciones de teoría de números mediante recursión.
- Infinito digital : término de la lingüística teórica.
- Un sueño dentro de un sueño (poema) – Poema de Edgar Allan Poe Páginas que muestran descripciones breves de destinos de redireccionamiento
- Efecto Droste : efecto visual recursivo
- Falso despertar : sueño vívido y convincente sobre despertarse del sueño.
- Combinador de punto fijo : función de orden superior Y para la cual Y f = f (Y f) Páginas que muestran descripciones breves de destinos de redirección
- Composiciones infinitas de funciones analíticas : teoría matemática sobre la composición de funciones iteradas infinitamente.
- Bucle infinito : modismo de programación
- Regresión infinita : un problema filosófico.
- Infinitismo : postura filosófica que sostiene que el conocimiento puede justificarse mediante una cadena infinita de razones.
- Espejo infinito : espejos paralelos o angulares que se reflejan entre sí.
- Función iterada : resultado de aplicar repetidamente una función matemática.
- Inducción matemática – Forma de demostración matemática
- Mise en abyme – Técnica de colocar una copia de una imagen dentro de sí misma, o una historia dentro de otra historia.
- Subrutina reentrante : concepto en programación informática. Páginas que muestran breves descripciones de destinos de redirección.
- Autorreferencia : Oración, idea o fórmula que se refiere a sí misma.
- Propiedad de Schröder-Bernstein – Propiedad matemática
- Spiegel im Spiegel - composición musical de 1978 de Arvo Pärt
- Bucle extraño : ciclos que recorren una jerarquía.
- Recursión de cola : llamada a subrutina realizada como acción final de un procedimiento. Páginas que muestran breves descripciones de los destinos de redirección.
- Fórmula autorreferencial de Tupper : fórmula que se representa visualmente a sí misma al ser graficada.
- Tortugas hasta el fondo : Declaración de regresión infinita
Referencias
- ↑ Causey, Robert L. (2006). Lógica, conjuntos y recursión (2.ª ed.). Sudbury, Mass.: Jones and Bartlett Publishers. ISBN 0-7637-3784-4OCLC 62093042
- ↑ "Axiomas de Peano | matemáticas" . Enciclopedia Británica . Consultado el 24 de octubre de 2019 .
- ↑ "Definición de RECURSIVO" . www.merriam-webster.com . Consultado el 24 de octubre de 2019 .
- ↑ Pinker, Steven (1994). El instinto del lenguaje . William Morrow.
- ↑ Pinker, Steven; Jackendoff, Ray (2005). "La facultad del lenguaje: ¿Qué tiene de especial?". Cognition . 95 ( 2): 201– 236. CiteSeerX 10.1.1.116.7784 . doi : 10.1016/j.cognition.2004.08.004 . PMID 15694646. S2CID 1599505 .
- ↑ Nordquist, Richard. "¿Qué es la recursión en la gramática inglesa?" . ThoughtCo . Consultado el 24 de octubre de 2019 .
- ↑Nevins, Andrew; Pesetsky, David; Rodrigues, Cilene (2009). "Evidence and argumentation: A reply to Everett (2009)"(PDF). Language. 85 (3): 671–681. doi:10.1353/lan.0.0140. S2CID 16915455. Archived from the original(PDF) on 2012-01-06.
- ↑Drucker, Thomas (4 January 2008). Perspectives on the History of Mathematical Logic. Springer Science & Business Media. p. 110. ISBN 978-0-8176-4768-1.
- ↑Barbara Partee and Mats Rooth. 1983. In Rainer Bäuerle et al., Meaning, Use, and Interpretation of Language. Reprinted in Paul Portner and Barbara Partee, eds. 2002. Formal Semantics: The Essential Readings. Blackwell.
- ↑Nederhof, Mark-Jan; Satta, Giorgio (2002), "Parsing Non-recursive Context-free Grammars", Proceedings of the 40th Annual Meeting on Association for Computational Linguistics (ACL '02), Stroudsburg, PA, USA: Association for Computational Linguistics, pp. 112–119, doi:10.3115/1073083.1073104.
- 12Hunter, David (2011). Essentials of Discrete Mathematics. Jones and Bartlett. p. 494. ISBN 9781449604424.
- ↑Shaffer, Eric. "CS 173:Discrete Structures"(PDF). University of Illinois at Urbana-Champaign. Retrieved 7 July 2023.
- ↑"Introduction to Computer Science and Programming in C; Session 8: September 25, 2008"(PDF). Columbia University. Retrieved 7 July 2023.
- ↑"recursion - Google Search". www.google.com. Retrieved 2019-10-24.
- ↑A. Kanamori, "In Praise of Replacement", pp.50--52. Bulletin of Symbolic Logic, vol. 18, no. 1 (2012). Accessed 21 August 2023.
- ↑Math 310 Class Notes 5: The Recursion Theorem for N
- ↑"Picture of the Day: Fractal Cauliflower". 28 December 2012. Retrieved 19 April 2020.
- ↑ Riding, Allan; Haines, George H.; Thomas, Roland (1994). "La interfaz entre la pequeña empresa canadiense y el banco: un modelo recursivo" . Teoría y práctica del emprendimiento . 18 (4). Revistas SAGE: 5–24 . doi : 10.1177/104225879401800401 .
- ↑ Beer, Stafford (1972). Brain Of The Firm . John Wiley & Sons. ISBN 978-0471948391.
- ↑ Tang, Daisy (marzo de 2013). "CS240 -- Apuntes de clase: Recursión" . Universidad Politécnica Estatal de California, Pomona. Archivado del original el 17 de marzo de 2018. Recuperado el 24 de septiembre de 2015. Más ejemplos de recursión: Muñecas rusas Matryoshka .
Cada muñeca está hecha de madera maciza o es hueca y contiene otra muñeca Matryoshka en su interior.
- ↑ "Giotto di Bondone y ayudantes: tríptico Stefaneschi" . El Vaticano . Consultado el 16 de septiembre de 2015 .
- ↑ Svozil, Karl (2018). Causalidad física (a)causalidad: determinismo, aleatoriedad y eventos no causados . Springer. pág. 12. ISBN 9783319708157.
- ↑ Cooper, Jonathan (5 de septiembre de 2007). "Arte y matemáticas" . Recuperado el 5 de julio de 2020 .
- ↑ "-cepción – Base de datos de neologismos de la Universidad Rice" . Universidad Rice. Archivado del original el 5 de julio de 2017. Recuperado el 23 de diciembre de 2016 .
Bibliografía
- Dijkstra, Edsger W. (1960). "Programación recursiva". Matemática numérica . 2 (1): 312– 318. doi : 10.1007/BF01386232 . S2CID 127891023 .
- Johnsonbaugh, Richard (2004). Matemáticas discretas . Prentice Hall. ISBN 978-0-13-117686-7.
- Hofstadter, Douglas (1999). Gödel, Escher, Bach: una eterna trenza dorada . Basic Books. ISBN 978-0-465-02656-2.
- Shoenfield, Joseph R. (2000). Teoría de la recursión . AK Peters Ltd. ISBN 978-1-56881-149-9.
- Causey, Robert L. (2001). Lógica, conjuntos y recursión . Jones & Bartlett. ISBN 978-0-7637-1695-0.
- Cori, Rene; Lascar, Daniel; Pelletier, Donald H. (2001). Teoría de la recursión, teoremas de Gödel, teoría de conjuntos, teoría de modelos . Oxford University Press. ISBN 978-0-19-850050-6.
- Barwise, Jon ; Moss, Lawrence S. (1996). Círculos viciosos . Centro para el Estudio del Lenguaje y la Información de la Universidad de Stanford. ISBN 978-0-19-850050-6. - ofrece un tratamiento de la correcursión .
- Rosen, Kenneth H. (2002). Matemáticas discretas y sus aplicaciones . McGraw-Hill College. ISBN 978-0-07-293033-7.
- Cormen, Thomas H.; Leiserson, Charles E.; Rivest, Ronald L.; Stein, Clifford (2001). Introducción a los algoritmos . Mit Pr. ISBN 978-0-262-03293-3.
- Kernighan, B.; Ritchie, D. (1988). El lenguaje de programación C. Prentice Hall. ISBN 978-0-13-110362-7.
- Stokey, Nancy; Robert Lucas; Edward Prescott (1989). Métodos recursivos en dinámica económica . Harvard University Press. ISBN 978-0-674-75096-8.
- Hungerford (1980). Álgebra . Saltador. ISBN 978-0-387-90518-1., primer capítulo sobre teoría de conjuntos.
Enlaces externos
- Recursión - tutorial de Alan Gauld
- Archivos Zip hasta el final
- Nevins, Andrew y David Pesetsky y Cilene Rodrigues. Evidencia y argumentación: una respuesta a Everett (2009). Language 85.3: 671-681 (2009)
- Recursión
- Teoría de la computación
- Autorreferencia
- Comentario