Como usar o metodo System.currentTimeMillis();
para calcular o numero de chamadas recursivas no codigo fibonacci abaixo:
public class FibonacciCalculator {
2. public long fibonacci( long number ) {
3. if ( ( number == 0 ) || ( number == 1 ) ) // casos básicos
4. return number;
5. else // passo de recursão
6. return fibonacci( number - 1 ) + fibonacci( number - 2 );
7. } // fim do método fibonacci
8. public void displayFibonacci() {
9. for ( int counter = 0; counter <= 10; counter++) {
System.out.printf( "Fibonacci of %d is: %d\n", counter, fibonacci( counter ) );
Esse método não calcula o número de chamadas e sim o tempo transcorrido. Para calcular o número de chamadas, crie uma variável estática e a incremente na entrada do método “fibonacci”.
e como eu resolvo este problema o codigo que ele se refere è o postado acima.
Aprimore o programa de Fibonacci (apresentado no material da aula) para que ele calcule a quantidade aproximada de tempo necessário para efetuar o cálculo e número de chamadas feitas para o método recursivo. Para este fim, chame o método static System.currentTimeMillis, que não aceita argumento e retorna a hora atual do computador em milissegundos. Chame esse método duas vezes ? uma vez antes da chamada a fibonacci e uma vez depois da chamada a fibonacci. Salve cada um desses valores à classe FibonacciCalculator e utilize essa variável para determinar o número de chamadas feitas para o método fibonacci. Exiba os resultados.
long t = System.currentTimeMillis();
... coisa que demora X milissegundos ...
t = System.currentTimeMillis() - t; // agora t conterá o tempo transcorrido em milissegundos.