Foro de elhacker.net

Programación => Programación General => Mensaje iniciado por: KickedDust en 13 Abril 2022, 18:30 pm



Título: Ayuda Recursividad en C
Publicado por: KickedDust en 13 Abril 2022, 18:30 pm
Alguien puede ayudarme resolviendo estos ejercicios en lenguaje C

Problema 1.
Diseñad un método tal que, dados dos vectores de enteros, retorne un booleano indicando si son
iguales, es decir, si tienen los mismos valores en las mismas posiciones.
Para poder hacerlo recursivamente deberéis, como ya es habitual, hacer otro método que incluya
índices para indicar los trozos de subvectores sobre los que se trabaja. Indicad qué llamada se hace
al método recursivo para resolver el problema inicial.

Problema 2.
Diseñad un método tal que calcule el máximo de un vector no vacío de números enteros. recursivamente para que se calcule el máximo de todo el vector.

Problema 3.
El algoritmo chino de multiplicación. Diseñad un método que multiplique dos números enteros
usando las siguientes equivalencias:
x∗y=(2∗x )∗(y2 )={(2∗x )∗( y÷2),si y es par(2∗x)∗( y÷2)+x ,si y esimpar

Problema 4.
Dado un vector de números enteros ordenado decrecientemente, diseñad un método tal que
compruebe si el valor de alguno de los elementos del vector coincide con su índice.
Podéis hacer dos versiones:
● una que vaya comprobando elemento a elemento si dicha propiedad se cumple (para esta
versión, el método recursivo usará, además del vector, un índice).
● otra que, usando dos índices, sea capaz de descartar a cada llamada la mitad del vector.
En ambos casos implementad los métodos que hacen la llamada inicial al que habéis diseñado
recursivamente dando valores iniciales a los índices.
Pista: podéis pensar qué relación tiene este problema con la búsqueda dicotómica y, si la
encontráis, obtendréis la solución.

Problema 5.
Un problema parecido al anterior se puede plantear cuando el vector de enteros está ordenado crecientemente y no contiene valores repetidos.
El razonamiento en este caso es más complicado que en el caso anterior (obviamente cuando se intenta hacer la versión que, a cada paso divide la longitud del intervalo donde buscar por la mitad).
Pista: la idea de la solución consiste en darse cuenta de que los valores crecen como mínimo tanto como los índices. Esto es cierto porque el vector no contiene elementos repetidos

Problema 6.
La sucesión de Fibonacci viene definida por la siguiente recurrencia:
fn+2=fn+fn+1
con valores iniciales f
0=0 y f1=1.
Diseñad e implementad un método recursivo para calcular el enésimo término de la sucesión y mostrad el árbol de llamadas que se produce al calcular f4 con vuestra solución.


Título: Re: Ayuda Recursividad en C
Publicado por: Serapis en 13 Abril 2022, 22:41 pm
No se hacen tareas.
Muestra tus avances y señalas tus dudas o errores y desde ahí se te podrá orientar.