Colección de citas famosas - Colección de máximas - ¿Qué es la recursividad y la recursividad?

¿Qué es la recursividad y la recursividad?

Pregunta 1: ¿Qué son la recursividad y la recursividad? ¿Cuál es la conexión ideológica entre los dos? La técnica de programación de llamar al programa en sí se llama recursividad. La recursividad como algoritmo se utiliza ampliamente en los lenguajes de programación. Un proceso o función tiene un método para llamarse a sí mismo directa o indirectamente en su definición o descripción. Por lo general, transforma un problema grande y complejo en un problema más pequeño similar al problema original para resolver. Solo se necesita una pequeña cantidad de programas. para describir los múltiples cálculos repetidos necesarios en el proceso de resolución de problemas, lo que reduce en gran medida la cantidad de código del programa.

El algoritmo recursivo es un método que utiliza varias operaciones simples repetibles (reglas) para describir problemas complejos. La recursividad es un algoritmo comúnmente utilizado en computadoras de secuencia. Calcula cada elemento de la secuencia de acuerdo con ciertas reglas, generalmente calculando algunos elementos anteriores para obtener el valor de la imagen especificada en la secuencia.

La iteración es la actividad de repetir un proceso de retroalimentación, generalmente con el objetivo de acercarse a una meta o resultado deseado. Cada repetición del proceso se denomina "iteración" y el resultado de cada iteración sirve como valor inicial para la siguiente iteración.

Pregunta 2: ¿Cuál es la diferencia entre recursividad y algoritmos recursivos? La recursividad se refiere a una función que se llama a sí misma, la recursividad se refiere a un proceso repetido, repetir un proceso,

Pregunta tres: ¿Cuál es la diferencia entre recursividad y métodos recursivos?

¡La recursividad es empujar desde el principio hacia atrás!

Pregunta 4: ¿Cuál es la diferencia entre recursividad y algoritmos recursivos?

¡La recursividad es empujar desde el principio hacia atrás!

Pregunta 5: ¿Cuál es la diferencia entre recursividad y recursividad? 1. Recursión: descomponga un problema con una escala de n en varios problemas con una escala de n-1 y degradéelos en secuencia hasta que la escala del problema se puede encontrar , encuentre la solución de la escala de orden inferior y sustitúyala en el problema de orden superior hasta encontrar la solución del problema de escala n.

2. Recursividad: Construya un problema con una escala de orden inferior (como la escala i, generalmente i=0) y encuentre la solución, deduzca el problema y la solución con la escala i 1, y luego deduzca a un problema de tamaño n.

3. La recursividad incluye dos procesos: retroceso y recursividad.

El mejor ejemplo es la secuencia de Fibonacci: 1 1 2 3 5 8 13 21 ... ...

Resumido en la fórmula es F(n 1)=F ( n) F(n-1), F(0)=F(1)=1

Puedes escribir esta función de forma recursiva:

int F(int n) {

if (n Pregunta 6: ¿Cuál es la diferencia entre algoritmo recursivo y algoritmo recursivo? La recursividad es avanzar de adelante hacia atrás, y la recursividad también tiene un proceso de retroceso

Dé un ejemplo , Secuencia: 1, 1, 2, 3, 5, 8, 13, 21,...

Para solicitar el artículo número 100, hay que empezar desde los dos primeros artículos hasta el artículo número 100, que es una recursividad El proceso de La conexión entre los dos es la misma, no existe una diferencia esencial.

Pregunta 8: Comparación entre recursividad y recursividad del algoritmo recursivo En comparación con el algoritmo recursivo, el algoritmo recursivo elimina el proceso de entrada y salida de datos de la pila. En otras palabras, no es necesario que la función funcione continuamente. acérquese al valor del límite y comience directamente desde el límite hasta que se encuentre el valor de la función. Por ejemplo, la función factorial: f (n) = n * f (n-1), el proceso de flujo de datos recursivo es el siguiente: f(3) {f(i)=f(i-1)*i}--gt; 0){f(0)=1}--gt ;f(1)--gt;f(2)--f(3){f(3)=6} y la recursión es la siguiente: f(0 )--gt;f(1)--gt;f( 2)--gt; f(3) Se puede ver que la eficiencia de la recursividad es mayor y la recursividad debe usarse siempre que sea posible. algoritmo básico, la recursividad no se puede ignorar, por lo que se debe prestar especial atención al comprender estos dos algoritmos. El llamado método de deducción directa consiste en partir de condiciones conocidas y calcular gradualmente el problema a resolver. Por ejemplo, la secuencia de Fibonacci, sea su función f(n), se sabe que f(1)=1, f(2)=1 f(n)=f(n-2) f(n-1; ) (ngt;=3, n∈N). Entonces podemos saber por deducción, f(3)=f(1) f(2)=2, f(4)=f(2) f(3)=3... hasta la solución que requerimos. El llamado proceso inverso parte de los resultados del problema conocido y utiliza expresiones iterativas para calcular gradualmente las condiciones iniciales del problema, que es el proceso inverso del proceso directo, que se denomina proceso inverso.

Pregunta 9: ¿Qué es un algoritmo recursivo? Un algoritmo recursivo es un algoritmo inteligente pero costoso en el que una función obtiene el resultado final llamándose a sí misma continuamente.

Por ejemplo:

Algoritmo recursivo de la Torre de Hanoi:

void move(char x, char y){

printf( c --gt; c\n, x, y);

}

void hanoi(int n, char uno, char dos, char tres){

/*Mueve n discos de un asiento a tres asientos con la ayuda de dos asientos*/

if(n==1) move(one, three

else); {

hanoi(n-1, uno, tres, dos);

mover(uno, tres)

hanoi(n-1, dos, uno, tres);

}

}

main(){

int n

printf; (ingrese el número de discos:);

scanf(d,amp;n);

printf(El paso para mover discos 3d:\n,n); >

hanoi(n,'A','B','C');

}

Déjame hablar sobre cómo entender la recursividad

En primer lugar: para funciones como la recursividad, no se preocupe por lo que hace. Solo sepa cuál es su función difusa. Es equivalente a imaginarlo como una caja negra que puede implementar una determinada función, independientemente de su funcionamiento interno. primero, vale, veamos cómo se resuelve la Torre de Hanoi

Primero, como dije arriba, imaginemos la función recursiva como una caja negra de una determinada función, void hanoi(int n, char one , char two, char three); La función de esta función recursiva es mover n pequeños rectángulos colocados de pequeño a grande desde la posición uno, pasando por la posición dos hasta la posición tres. Entonces, el problema que su programa principal necesita resolver es mover m bloques de Hanoi de A a C con la ayuda de B. De acuerdo con la función de la Torre de Hanoi que mencionamos anteriormente, creo que los tontos también saben escribir en la función principal: Hanoi (m, A, B, C) puede realizar el movimiento de m bloques de A a C con la ayuda del código B, ¿verdad? Por lo tanto, hay hanoi(m,'A','C','B'); en la función principal;

A continuación, echemos un vistazo a lo que debe hacer la función Hannoi para implementar esta función de Hannoi.

Hay tres líneas en la función hannoi

hanoi(n-1, one, three, two

move(one, three); /p>

hanoi(n-1, two, one, three);

También lo vemos desde la perspectiva de una caja negra si queremos mover n bloques de A a B. a C, ¿se puede dividir en los tres pasos anteriores?

Estas tres partes son: el primer paso es mover los n-1 bloques excepto el último bloque más largo de una posición a través de tres a dos, es decir, de A a C a B, y luego mover el abajo Use la función de movimiento para mover el bloque más largo directamente de A a C. Después de eso, en el tercer paso, use la función de hanno para mover el bloque n-1 de B de A a C. Este proceso de tres pasos Practica n bloques. Para la función de pasar de A a B y a C, no necesitas preocuparte por cómo la función Hanoi implementa esta función. Solo debes saber que tiene una función tan mágica.

Finalmente: La recursividad tiene un final. Bueno, ¿el final es cómo jugar a la Torre de Hanoi cuando solo hay una pieza? Es muy simple. Simplemente mueva la pieza a C y listo. Entonces, al final de la función hanoni, debemos agregar if(n==1)move(one, three); , muévalo directamente a C. La posición C es suficiente) Tal condición puede realizar la función hanoin ngt; = 1... gt;

Pregunta 10: ¿Cuál es la diferencia entre recursividad y recursividad? ¿Cuál es más rápido de usar? La recursividad es un bucle recursivo. La recursividad o el bucle son más fáciles de entender y usar que la recursividad, pero el algoritmo recursivo se ejecuta más rápido y el código es más simple. El algoritmo recursivo también tiene desventajas, principalmente el gran consumo de espacio. Matemáticamente hablando, todos los algoritmos recursivos pueden reemplazarse por algoritmos recursivos (bucle), pero no todos los algoritmos de bucle pueden reemplazarse por recursividad.