Metodo System.currentTimeMillis();

3 respostas
F

Como usar o metodo System.currentTimeMillis();
para calcular o numero de chamadas recursivas no codigo fibonacci abaixo:

  1. 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++) {
  2. System.out.printf( "Fibonacci of %d is: %d\n", counter, fibonacci( counter ) );
    
  3. }
    
  4. } // fim do método displayFibonacci
    
  5. } // fim da classe FibonacciCalculator

3 Respostas

T

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”.

F

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.

T
long t = System.currentTimeMillis();
... coisa que demora X milissegundos ...
t = System.currentTimeMillis() - t; // agora t conterá o tempo transcorrido em milissegundos.
Criado 10 de novembro de 2008
Ultima resposta 10 de nov. de 2008
Respostas 3
Participantes 2