Recursividad y algoritmos recursivos. Recursión. Tareas de entrenamiento

Funciones: dado recursivamente una función en su definición se contiene a sí misma; en particular, una función definida por una fórmula recurrente es recursiva. Por lo tanto, en una expresión puede dar un conjunto infinito de formas de calcular una función, definir muchos objetos usted mismo utilizando definiciones privadas previamente especificadas.

Datos

Estructura elemento_de_lista ( elemento_de_lista * siguiente; /* referencia al siguiente elemento del mismo tipo */ datos enteros;

/* algunos datos */ );

La estructura recursiva de los datos a menudo dicta el uso de la recursividad para procesar estos datos.

en fisica

Un ejemplo clásico de recursividad infinita son dos espejos colocados uno frente al otro: forman dos pasillos de reflejos decrecientes de los espejos.

Otro ejemplo de recursividad infinita es el efecto de autoexcitación (retroalimentación positiva) de los circuitos de amplificación electrónica, cuando la señal de salida va a la entrada, se amplifica, regresa a la entrada del circuito y se amplifica nuevamente. Los amplificadores para los que este modo de funcionamiento es estándar se denominan autoosciladores.

En lingüística La capacidad de una lengua para generar oraciones y construcciones anidadas. Oferta básica " el gato se comió el ratón » se puede expandir mediante recursividad como Vanya supuso que el gato se comió al ratón. , entonces como Katya sabe que Vanya adivinó que el gato se comió al ratón. etcétera. La recursividad se considera uno de los universales lingüísticos, es decir, es característica de cualquier lenguaje natural. Sin embargo, recientemente ha habido una discusión activa sobre la posible falta de recursividad en una de las lenguas del Amazonas: el pirahã, como lo señala el lingüista Daniel Everett () .

Inglés

en cultura

La mayoría de los chistes sobre la recursividad se refieren a la recursividad infinita, en la que no existe una condición de salida, por ejemplo, el famoso dicho: "para entender la recursividad, primero debes entender la recursividad".

Un chiste muy popular sobre la recursividad, que recuerda a una entrada de diccionario:

  • Varios relatos de Stanislaw Lem están dedicados a (posibles) incidentes con recursividad infinita:

la historia sobre Ion el Tranquilo "El decimocuarto viaje" de "Star Diaries of Ion el Tranquilo", en la que el héroe pasa secuencialmente de un artículo sobre sepulcros a un artículo sobre sepultación, de allí a un artículo sobre sepulkars, en el que hay De nuevo hay una referencia al artículo “sepulki”:
“Los SEPULKI son un elemento importante de la civilización Ardrite (q.v.) del planeta Enteropia (q.v.). Ver SEPULCARIA."
Seguí este consejo y leí:
"SEPULCARIA - dispositivos para la sepulción (ver)".
Busqué "Sepulenia"; decía:
“SEPULACIÓN es la ocupación de los Ardritas (q.v.) del planeta Enteropia (q.v.). Ver SEPULOS”.

Lem S. “Diarios estelares de Iyon el Silencioso. Viaje catorce."

  • Una historia de "Cyberiad" sobre una máquina inteligente que tenía suficiente inteligencia y pereza para construir una similar para resolver un problema determinado y confiarle la solución (el resultado fue una recursión sin fin, cuando cada nueva máquina construía una similar y le transfirió la tarea).
  • Acrónimos recursivos: GNU (GNU Not Unix), PHP (PHP: Preprocesador de hipertexto), etc.

Ver también

  • Secuencia de retorno

Notas


Fundación Wikimedia.

  • 2010.
  • Memoria de vídeo

Radiación electromagnética

    Vea qué es "Recursión" en otros diccionarios: recursividad - retorno, repetición Diccionario de sinónimos rusos. sustantivo recursivo, número de sinónimos: 1 ...

    Vea qué es "Recursión" en otros diccionarios: Diccionario de sinónimos - - [] recursividad En un sentido general, el cálculo de una función utilizando un algoritmo específico. Ejemplos de tales algoritmos son fórmulas recurrentes que derivan el cálculo de un término dado... ...

    Guía del traductor técnico recursividad - en sentido general, el cálculo de una función mediante un algoritmo específico. Ejemplos de tales algoritmos son las fórmulas recurrentes, que derivan el cálculo de un término dado de una secuencia (la mayoría de las veces numérica) del cálculo de varios anteriores...

    Guía del traductor técnico Diccionario económico y matemático. - Un patrón terapéutico en el que alguna condición o criterio formulado en el enunciado original se toma y se aplica al enunciado mismo. Por ejemplo: no tengo tiempo. ¿Cuánto tiempo tuviste que dedicar para asegurarte de que... ...

    Gran enciclopedia psicológica. RECURSIÓN - un método de determinación de funciones, que es objeto de estudio en la teoría de algoritmos y otras ramas de las matemáticas. lógica. Este método se ha utilizado durante mucho tiempo en aritmética para determinar secuencias numéricas (progresión, números de Fibonacci, etc.).... ...

    Vea qué es "Recursión" en otros diccionarios: Enciclopedia Matemática - (fondo) (lat. recursio retorno). Una de las tres fases de la articulación del sonido, la sangría. Transferir los órganos del habla a un estado de calma o comenzar a articular el siguiente sonido. En el silencio de la palabra, la recursividad (sangría) al articular [t] puede superponerse... ...

Diccionario de términos lingüísticos T.V. Potro

Hola Habrahabr!

En este artículo hablaremos sobre los problemas de recursividad y cómo solucionarlos.

La recursividad es un fenómeno bastante común que ocurre no sólo en los campos de la ciencia, sino también en la vida cotidiana. Por ejemplo, el efecto Droste, el triángulo de Sierpinski, etc. Una forma de ver la recursión es apuntar la cámara web a la pantalla del monitor de la computadora, naturalmente, habiéndola encendido primero. Así, la cámara grabará la imagen de la pantalla del ordenador y la mostrará en esta pantalla, será algo así como un bucle cerrado. Como resultado, observaremos algo parecido a un túnel.

En programación, la recursividad está estrechamente relacionada con las funciones; más precisamente, es gracias a las funciones en programación que existe la recursividad o una función recursiva. En palabras simples, la recursividad es la definición de una parte de una función (método) a través de sí misma, es decir, es una función que se llama a sí misma, directamente (en su cuerpo) o indirectamente (a través de otra función).

Se ha dicho mucho sobre la recursividad. Aquí hay algunos buenos recursos:

  • Recursión y problemas recursivos. Áreas de aplicación de la recursividad
Se supone que el lector está teóricamente familiarizado con la recursividad y sabe qué es. En este artículo prestaremos más atención a los problemas de recursividad.

Tareas

Al aprender la recursividad, la forma más eficaz de comprender la recursividad es resolver problemas.
¿Cómo resolver problemas de recursividad?
En primer lugar, debe comprender que la recursividad es una especie de exageración. En términos generales, todo lo que se resuelve de forma iterativa se puede resolver de forma recursiva, es decir, utilizando una función recursiva.

de la red

Cualquier algoritmo implementado en forma recursiva se puede reescribir en forma iterativa y viceversa. La pregunta sigue siendo si esto es necesario y qué tan efectivo será.

Se pueden dar los siguientes argumentos para justificar esto.

Para empezar, podemos recordar las definiciones de recursividad e iteración. La recursividad es una forma de organizar el procesamiento de datos en la que un programa se llama a sí mismo directamente o con la ayuda de otros programas. La iteración es una forma de organizar el procesamiento de datos en la que ciertas acciones se repiten muchas veces sin dar lugar a llamadas recursivas al programa.

Tras lo cual podemos concluir que son mutuamente intercambiables, pero no siempre con los mismos costes en términos de recursos y velocidad. Para justificar esto, podemos poner el siguiente ejemplo: hay una función en la que, para organizar un determinado algoritmo, hay un bucle que realiza una secuencia de acciones dependiendo del valor actual del contador (puede no depender de él). Dado que hay un ciclo, significa que el cuerpo repite una secuencia de acciones: iteraciones del ciclo. Puede mover operaciones a una subrutina separada y pasarle el valor del contador, si corresponde. Al finalizar la ejecución de la subrutina comprobamos las condiciones de ejecución del bucle, y si es verdadera procedemos a una nueva llamada a la subrutina, si es falsa completamos la ejecución; Porque Colocamos todo el contenido del bucle en una subrutina, lo que significa que la condición para ejecutar el bucle también se coloca en la subrutina, y se puede obtener a través del valor de retorno de la función, parámetros pasados ​​por referencia o puntero a la subrutina. , así como variables globales. Además, es fácil demostrar que una llamada a una subrutina determinada desde un bucle se puede convertir fácilmente en una llamada o no llamada (devolver un valor o simplemente completar el trabajo) de una subrutina desde sí misma, guiada por algunas condiciones (aquellas que estaban previamente en la condición de bucle). Ahora, si observa nuestro programa abstracto, aproximadamente parece pasar valores a una subrutina y usarlos, que la subrutina cambiará cuando finalice, es decir. Reemplazamos el bucle iterativo con una llamada recursiva a una subrutina para resolver un algoritmo determinado.

La tarea de llevar la recursividad a un enfoque iterativo es simétrica.

En resumen, podemos expresar las siguientes ideas: para cada enfoque existe su propia clase de tareas, que está determinada por los requisitos específicos de una tarea específica.

Puedes saber más sobre esto.


Al igual que una enumeración (ciclo), la recursividad debe tener una condición de parada: caso base (de lo contrario, al igual que un ciclo, la recursividad funcionará para siempre: infinita). Esta condición es el caso al que va la recursividad (paso de recursividad). En cada paso, se llama a una función recursiva hasta que la siguiente llamada activa la condición base y la recursividad se detiene (o más bien, regresa a la última llamada a la función). Toda la solución se reduce a resolver el caso base. En el caso en el que se llama a una función recursiva para resolver un problema complejo (no el caso base), se realizan una serie de llamadas o pasos recursivos para reducir el problema a uno más simple. Y así sucesivamente hasta obtener una solución básica.

Entonces la función recursiva consta de

  • Condición de parada o caso base
  • Una condición de continuación o un paso de recursividad es una forma de reducir un problema a otros más simples.
Veamos esto usando el ejemplo de encontrar el factorial:

Solución de clase pública ( public static int recursion(int n) ( // condición de salida // Caso base // ¿cuándo dejar de repetir la recursividad? if (n == 1) ( return 1; ) // Paso de recursión / condición recursiva return recursion( n - 1) * n; public static void main(String args) ( System.out.println(recursion(5)); // llamar a una función recursiva ) )

Aquí la condición básica es la condición cuando n=1. Ya que sabemos que 1!=1 y para calcular 1! no necesitamos nada. Para calcular 2! podemos usar 1!, es decir 2!=1!*2. Para calcular 3! necesitamos 2!*3... Para calcular n! ¡Necesitamos (n-1)!*n. Este es el paso de recursividad. En otras palabras, para obtener el valor factorial de un número n, basta con multiplicar el valor factorial del número anterior por n.

Etiquetas:

  • recursividad
  • tareas
  • Java
Agregar etiquetas

Funciones: dado recursivamente una función en su definición se contiene a sí misma; en particular, una función definida por una fórmula recurrente es recursiva. Por lo tanto, en una expresión puede dar un conjunto infinito de formas de calcular una función, definir muchos objetos usted mismo utilizando definiciones privadas previamente especificadas.

Datos

Estructura elemento_de_lista ( elemento_de_lista * siguiente; /* referencia al siguiente elemento del mismo tipo */ datos enteros;

/* algunos datos */ );

La estructura recursiva de los datos a menudo dicta el uso de la recursividad para procesar estos datos.

en fisica

Un ejemplo clásico de recursividad infinita son dos espejos colocados uno frente al otro: forman dos pasillos de reflejos decrecientes de los espejos.

Otro ejemplo de recursividad infinita es el efecto de autoexcitación (retroalimentación positiva) de los circuitos de amplificación electrónica, cuando la señal de salida va a la entrada, se amplifica, regresa a la entrada del circuito y se amplifica nuevamente. Los amplificadores para los que este modo de funcionamiento es estándar se denominan autoosciladores.

En lingüística La capacidad de una lengua para generar oraciones y construcciones anidadas. Oferta básica " el gato se comió el ratón » se puede expandir mediante recursividad como Vanya supuso que el gato se comió al ratón. , entonces como Katya sabe que Vanya adivinó que el gato se comió al ratón. etcétera. La recursividad se considera uno de los universales lingüísticos, es decir, es característica de cualquier lenguaje natural. Sin embargo, recientemente ha habido una discusión activa sobre la posible falta de recursividad en una de las lenguas del Amazonas: el pirahã, como lo señala el lingüista Daniel Everett () .

Inglés

en cultura

La mayoría de los chistes sobre la recursividad se refieren a la recursividad infinita, en la que no existe una condición de salida, por ejemplo, el famoso dicho: "para entender la recursividad, primero debes entender la recursividad".

Un chiste muy popular sobre la recursividad, que recuerda a una entrada de diccionario:

  • Varios relatos de Stanislaw Lem están dedicados a (posibles) incidentes con recursividad infinita:

la historia sobre Ion el Tranquilo "El decimocuarto viaje" de "Star Diaries of Ion el Tranquilo", en la que el héroe pasa secuencialmente de un artículo sobre sepulcros a un artículo sobre sepultación, de allí a un artículo sobre sepulkars, en el que hay De nuevo hay una referencia al artículo “sepulki”:
“Los SEPULKI son un elemento importante de la civilización Ardrite (q.v.) del planeta Enteropia (q.v.). Ver SEPULCARIA."
Seguí este consejo y leí:
"SEPULCARIA - dispositivos para la sepulción (ver)".
Busqué "Sepulenia"; decía:
“SEPULACIÓN es la ocupación de los Ardritas (q.v.) del planeta Enteropia (q.v.). Ver SEPULOS”.

Lem S. “Diarios estelares de Iyon el Silencioso. Viaje catorce."

  • Una historia de "Cyberiad" sobre una máquina inteligente que tenía suficiente inteligencia y pereza para construir una similar para resolver un problema determinado y confiarle la solución (el resultado fue una recursión sin fin, cuando cada nueva máquina construía una similar y le transfirió la tarea).
  • Acrónimos recursivos: GNU (GNU Not Unix), PHP (PHP: Preprocesador de hipertexto), etc.

Ver también

  • Secuencia de retorno

Notas


Fundación Wikimedia.

Radiación electromagnética

    Retorno, repetición Diccionario de sinónimos rusos. sustantivo recursivo, número de sinónimos: 1 ... - retorno, repetición Diccionario de sinónimos rusos. sustantivo recursivo, número de sinónimos: 1 ...

    Vea qué es "Recursión" en otros diccionarios: Diccionario de sinónimos - - [] recursividad En un sentido general, el cálculo de una función utilizando un algoritmo específico. Ejemplos de tales algoritmos son fórmulas recurrentes que derivan el cálculo de un término dado... ...

    Guía del traductor técnico recursividad - en sentido general, el cálculo de una función mediante un algoritmo específico. Ejemplos de tales algoritmos son las fórmulas recurrentes, que derivan el cálculo de un término dado de una secuencia (la mayoría de las veces numérica) del cálculo de varios anteriores...

    Guía del traductor técnico Diccionario económico y matemático. - Un patrón terapéutico en el que alguna condición o criterio formulado en el enunciado original se toma y se aplica al enunciado mismo. Por ejemplo: no tengo tiempo. ¿Cuánto tiempo tuviste que dedicar para asegurarte de que... ...

    Un método para determinar funciones, que es objeto de estudio en la teoría de algoritmos y otras ramas de las matemáticas. lógica. Este método se ha utilizado durante mucho tiempo en aritmética para determinar secuencias numéricas (progresión, números de Fibonacci, etc.).... ... - un método de determinación de funciones, que es objeto de estudio en la teoría de algoritmos y otras ramas de las matemáticas. lógica. Este método se ha utilizado durante mucho tiempo en aritmética para determinar secuencias numéricas (progresión, números de Fibonacci, etc.).... ...

    Vea qué es "Recursión" en otros diccionarios: Enciclopedia Matemática - (fondo) (lat. recursio retorno). Una de las tres fases de la articulación del sonido, la sangría. Transferir los órganos del habla a un estado de calma o comenzar a articular el siguiente sonido. En el silencio de la palabra, la recursividad (sangría) al articular [t] puede superponerse... ...

Algoritmo recursivo

recursividad- un método para definir una clase de objetos o métodos especificando primero uno o más (generalmente simples) básico casos o métodos, y luego definir a partir de ellos una regla para construir una clase definida que se refiera directa o indirectamente a estos casos base.

En otras palabras, la recursividad es una forma de definir generalmente un objeto o acción a través de sí mismo, utilizando definiciones privadas previamente definidas. La recursividad se utiliza cuando se puede identificar la autosimilitud de un problema.

Ejemplos

Algoritmo para mover la torre, el algoritmo moverá la cantidad requerida de discos de la pirámide "fuente" a la pirámide "tarea" utilizando la pirámide "repuesto".

Si el número de discos es uno, entonces:

  • Mover el disco del origen al trabajo

De lo contrario:

  • Mueva recursivamente todos los discos excepto uno desde el origen al repuesto, utilizando el trabajo como repuesto
  • Mueva el disco restante del origen al trabajo
  • Mueva todos los discos del stock al trabajo utilizando el origen como stock

Recursión en programación

Funciones

Clase elemento_de_lista ( elemento_de_lista *siguiente; /* referencia al siguiente elemento del mismo tipo */ datos enteros; /* algunos datos */ );

/* algunos datos */ );

Recursión en física

Un ejemplo clásico de recursividad infinita son dos espejos colocados uno frente al otro: forman dos pasillos de reflejos que se desvanecen de los espejos.

Un ejemplo clásico de recursividad infinita son dos espejos colocados uno frente al otro: forman dos pasillos de reflejos decrecientes de los espejos.

Recursión en lingüística

La capacidad de una lengua para generar oraciones y construcciones anidadas. oferta básica La capacidad de una lengua para generar oraciones y construcciones anidadas. Oferta básica " se puede expandir por recursividad como » se puede expandir mediante recursividad como Vanya supuso que el gato se comió al ratón. , entonces como etcétera. La recursividad se considera uno de los universales lingüísticos, es decir, es característica de cualquier lengua natural (aunque recientemente la posible ausencia de recursividad en una de las lenguas del Amazonas, la pirahã, señalada por el lingüista D. Everett, ha discutido activamente). La recursividad en lingüística, sus variedades y las manifestaciones más características en el idioma ruso se describen en el artículo de E.A Lodatko “Estructuras lingüísticas recursivas” (ver: Estructuras lingüísticas recursivas)

Citas

Humor

La mayoría de los chistes sobre la recursividad tratan sobre la recursividad infinita, que no tiene condición de salida. Dichos famosos: “Para entender la recursividad, primero debes entender la recursividad”, “Para hacer algo, necesitas hacer algo”, “Para preparar una ensalada necesitas: pepinos, tomates, lechuga”. Un chiste muy popular sobre la recursividad, que recuerda a una entrada de diccionario:

Un chiste muy popular sobre la recursividad, que recuerda a una entrada de diccionario:

  • La historia sobre Ion el Tranquilo "El decimocuarto viaje" de "Star Diaries of Iyon el Tranquilo", en la que el héroe pasa sucesivamente de un artículo sobre sepulki a un artículo sobre sepultación, de allí a un artículo sobre sepulcaria, que nuevamente contiene una referencia al artículo “sepulki”.
  • Una historia sobre una máquina inteligente que tuvo suficiente inteligencia y pereza para construir otra similar para resolver un problema determinado, y confiarle la solución (el resultado fue una recursión interminable, cuando cada nueva máquina construía una similar y delegaba la tarea a él).

La canción-cuento popular ruso “El sacerdote tenía un perro...” es un ejemplo de recursividad:

El cura tenía un perro, le encantaba,
Ella comió un trozo de carne, él la mató.
Enterrado en el suelo
Título escribió:

“El sacerdote tenía un perro, él la amaba, ella comía un pedazo de carne, él la mató, la enterró en la tierra, la inscripción estaba escrita: “El sacerdote tenía un perro, él la amaba, ella comió un pedazo de carne, la mató, la enterró en la tierra, La inscripción escribió: ...

Ver también

  • Secuencia recurrente (secuencia de retorno)

Campo de golf

  • Thomas H. Corman, Charles I. Leiserson, Ronald L. Rivest, Clifford Stein Algoritmos: construcción y análisis = INTRODUCCIÓN A LOS ALGORITMOS. - 2ª ed. - M.: "Williams", 2006. - P. 1296. - ISBN 0-07-013151-1

Fundación Wikimedia.

Vea qué es un “algoritmo recursivo” en otros diccionarios:

    algoritmo recursivo- rekursyvusis algoritmas statusas T sritis automatika atitikmenys: engl. algoritmo recursivo vok. Algoritmo rekursiver, m rus. algoritmo recursivo, m pranc. algoritmo recursivo, m … Automatikos terminų žodynas

    algoritmo de control recursivo- rekursyvusis valdymo algoritmas statusas T sritis automatika atitikmenys: engl. algoritmo de control recursivo vok. rekursiver Regelungs od. Algoritmo Steuerungs, m rus. algoritmo de control recursivo, m pranc. algoritmo de regulación recurrente, m … Automatikos terminų žodynas

    Este es un algoritmo para ordenar elementos en una lista. Cuando un elemento de la lista tiene varios campos, el campo que sirve como criterio de ordenación se denomina clave de clasificación. En la práctica, un número se utiliza a menudo como clave, y en otros campos... ... Wikipedia

    Acrónimo recursivo Un acrónimo (a veces un backronym) que se refiere a sí mismo. Se ha vuelto tradicional entre los piratas informáticos elegir siglas y abreviaturas que se refieran a ellos mismos de forma directa o indirecta. Uno de los primeros ejemplos... ... Wikipedia

    - (inglés: analizador de descenso recursivo) un algoritmo de análisis implementado llamando mutuamente a procedimientos de análisis que cumplen con las reglas de una gramática libre de contexto o BNF. Aplicación de las reglas de forma secuencial, de izquierda a derecha... Wikipedia

    Un método recursivo para crear una malla de corte para dividir múltiples polígonos 2D que contienen islas en áreas libres de islas. Se puede utilizar en sistemas de información geográfica para convertir polígonos insulares en polígonos no insulares. ¿Enlace? ...Wikipedia

    Este término tiene otros significados, consulte Algoritmo (significados). ¿Es deseable mejorar este artículo?: Reelaborar el diseño de acuerdo con las reglas ... Wikipedia

    Algoritmos de búsqueda de gráficos A* B* Algoritmo de Bellman Ford Búsqueda bidireccional Algoritmo de Dijkstra Algoritmo de Johnson Búsqueda primero en amplitud Búsqueda primero en profundidad Búsqueda limitada en profundidad Búsqueda primera mejor coincidencia Algoritmo de Floyd Warshall Buscar... ... Wikipedia

    Este término tiene otros significados, ver ppm. PPM (Predicción por coincidencia parcial) es un algoritmo estadístico adaptativo de compresión de datos sin pérdidas basado en contexto... ... Wikipedia

Las recursiones son eventos interesantes por derecho propio, pero en programación son especialmente importantes en casos específicos. Al encontrarse con ellos por primera vez, un número bastante importante de personas tiene problemas para entenderlos. Esto se debe al enorme campo de aplicaciones potenciales del término en sí, dependiendo del contexto en el que se utilice “recursión”. Pero podemos esperar que este artículo ayude a evitar cualquier posible malentendido o malentendido.

¿Qué es la "recursión" de todos modos?

La palabra "recursión" tiene toda una gama de significados, que dependen del campo en el que se aplica. La designación universal es la siguiente: las recursiones son definiciones, imágenes, descripciones de objetos o procesos en los propios objetos. Sólo son posibles en los casos en que el objeto es parte de sí mismo. Las matemáticas, la física, la programación y otras disciplinas científicas definen la recursividad a su manera. Ha encontrado aplicación práctica en el funcionamiento de sistemas de información y experimentos físicos.

¿Qué se entiende por recursividad en programación?

Las situaciones recursivas, o recursividad en programación, son momentos en los que un procedimiento o función de programa se llama a sí mismo. Por extraño que pueda parecer para quienes empezaron a aprender programación, aquí no hay nada extraño. Cabe recordar que las recursividades no son difíciles y, en algunos casos, reemplazan a los bucles. Si la computadora recibe instrucciones correctas para llamar a un procedimiento o función, simplemente comenzará a ejecutarlo.

La recursividad puede ser finita o infinita. Para que el primero deje de provocarse, debe contener también condiciones de extinción. Esto puede consistir en disminuir el valor de una variable y, cuando se alcanza un cierto valor, detener la llamada y finalizar el programa/pasar al código siguiente, dependiendo de las necesidades para lograr ciertos objetivos. Por recursividad infinita queremos decir que será llamado mientras esté ejecutándose la computadora o programa en el que se ejecuta.

También es posible organizar recursividad compleja utilizando dos funciones. Digamos que hay A y B. La función A tiene una llamada a B en su código, y B, a su vez, indica a la computadora la necesidad de ejecutar A. Las recursiones complejas son una salida a una serie de situaciones lógicas complejas para la computadora. lógica.

Si el lector de estas líneas ha estudiado los bucles de programas, probablemente ya habrá notado las similitudes entre ellos y la recursividad. En general, pueden realizar tareas similares o idénticas. Utilizando la recursividad es conveniente simular el funcionamiento de un bucle. Esto es especialmente útil cuando las bicicletas en sí no son muy cómodas de usar. El esquema de implementación del software no difiere mucho entre los diferentes lenguajes de programación de alto nivel. Pero aún así, la recursividad en Pascal y la recursividad en C u otro lenguaje tienen sus propias características. Se puede implementar con éxito en lenguajes de bajo nivel como Assembly, pero esto es más problemático y requiere más tiempo.

Árboles de recursividad

¿Qué es un "árbol" en programación? Este es un conjunto finito que consta de al menos un nodo que:

  1. Tiene un nodo especial inicial, que se llama raíz de todo el árbol.
  2. Los nodos restantes están en un número distinto de cero de subconjuntos disjuntos por pares y también son un árbol. Todas estas formas de organización se denominan subárboles del árbol principal.

En otras palabras: los árboles contienen subárboles, que contienen más árboles, pero en menor número que el árbol anterior. Esto continúa hasta que uno de los nodos ya no puede avanzar, y esto marcará el final de la recursividad. Hay un matiz más en la representación esquemática: los árboles comunes crecen de abajo hacia arriba, pero en la programación se dibujan al revés. Los nodos que no tienen continuación se denominan nodos hoja. Para facilitar la designación y conveniencia, se utiliza terminología genealógica (antepasados, hijos).

¿Por qué se utiliza en programación?

La recursividad en programación ha encontrado su aplicación para resolver una serie de problemas complejos. Si es necesario realizar una sola llamada, entonces es más fácil utilizar un bucle de integración, pero con dos o más repeticiones, para evitar construir una cadena y hacer su ejecución en forma de árbol, se utilizan situaciones recursivas. Para una amplia clase de tareas, organizar el proceso informático de esta manera es lo más óptimo desde el punto de vista del consumo de recursos. Por tanto, la recursividad en Pascal o cualquier otro lenguaje de programación de alto nivel es una llamada a una función o procedimiento hasta que se cumplan las condiciones, independientemente del número de llamadas externas. En otras palabras, un programa puede tener sólo una llamada a una subrutina, pero ésta ocurrirá hasta un momento predeterminado. En cierto modo, esto es un análogo de una bicicleta con sus propias características de uso.

Diferencias entre recursividad en diferentes lenguajes de programación

A pesar del esquema de implementación general y la aplicación específica en cada caso individual, la recursividad en programación tiene sus propias características. Esto puede generar dificultades a la hora de buscar el material necesario. Pero siempre debes recordar: si un lenguaje de programación llama a funciones o procedimientos, entonces es factible llamar a la recursividad. Pero sus diferencias más significativas aparecen al utilizar lenguajes de programación bajos y altos. Esto es especialmente cierto para las capacidades de implementación de software. En última instancia, la ejecución depende de la tarea que se plantee y la recursividad se escribe de acuerdo con ella. Las funciones y procedimientos utilizados son diferentes, pero su objetivo es siempre el mismo: obligarlos a llamarse a sí mismos.

La recursividad es fácil. ¿Qué tan fácil es recordar el contenido de un artículo?

Para los principiantes, comprenderlo puede resultar difícil al principio, por lo que necesitarán ejemplos de recursividad, o al menos uno. Por tanto, conviene dar un pequeño ejemplo de la vida cotidiana que ayudará a comprender la esencia misma de este mecanismo para lograr objetivos en programación. Tome dos o más espejos y colóquelos de manera que todos los demás se muestren en uno. Puedes ver que los espejos se reflejan varias veces, creando un efecto infinito. Las recursiones son, en sentido figurado, reflexiones (habrá muchas). Como puedes ver, no es difícil de entender, si tan solo tienes el deseo. Y al estudiar los materiales de programación, podrá comprender mejor que la recursividad también es una tarea muy fácil de completar.




Arriba