Ejercicio 10a.

Ejercicio 10a.

de Guillermo Daniel Toyos Marfurt -
Número de respuestas: 2

Buenas, no me queda claro como puedo implementar un algoritmo recursivo para contar el numero de invocaciones de otra funcion recursiva.

Como solucion especifica para fibonacci(n), aunque se puede generalizar facilmente, es declarar una variable global counter y dentro de la funcion a analizar, agregarle en la primera linea de la funcion: counter++, lo cual cuenta cuantas veces se llama a la funcion.

Agradeceria alguna sugerencia :)

En respuesta a Guillermo Daniel Toyos Marfurt

Re: Ejercicio 10a.

de Libertad Tansini -

Hola, te recomiendo que primero mires el video sobre metodología de resolución del Ejercicio 2 ya que se resuelve de forma similar.

Podrías implementar una función que no sólo calcule Fibonacci(n) sino que además cuente la cantidad de invocaciones necesarias para hacerlo. Esta será una función recursiva que requiere un argumento adicional que lleva la cuenta de la cantidad de invocaciones a la función. Este argumento se deberá pasar por referencia para que el resultado sea "visible" a lo largo de todas las invocaciones, particularmente al finalizar, dando el resultado requerido de la cantidad de invocaciones necesarias. Algo así como:

/* Devuelve Fibonacci(n) y en invoc la  cantidad de invocaciones necesarias para calcularlo */

uint fibonacciRec(uint n, uint & invoc);

saludos

En respuesta a Guillermo Daniel Toyos Marfurt

Re: Ejercicio 10a.

de Facundo Benavides -

hola, agrego una alternativa al camino propuesto por libertad.

notar que la letra dice "Implemente un algoritmo recursivo que calcule la cantidad de invocaciones que deben hacerse para obtener Fibonacci(n) con el algoritmo visto en el curso", que es distinto a lo que te estás planteando.

en qué sentido? la letra no pide que cuentes las invocaciones de un algoritmo en acción. sino las que se harían para obtener Fibonacci(n) si usáramos el algoritmo visto en el curso.

es decir, sabiendo como funciona el algoritmo visto en el curso, escribir un algortimo que me diga cuántas veces se llama a la función hasta que llega a los pasos base para un 'n' dado.

espero eso ayude.

salud