Luis @luismendes070
Luis @luismendes07020/01/2023 07:34
Compartilhe

Recursividade, Fibonacci e java

  • #Java

A sequência de Fibonacci é conhecida como 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, … . Assim, saber implementar o algoritmo na linguagem java web e/ou da plataforma Android pode ser um diferencial na entrevista técnica para desenvolvedores.

Diante desse cenário, outro conceito que é necessário é a recursividade. Assim, a memória do dispositivo pode ser otimizada.

Além disso, a linguagem java conta com o ferramental da JetBrains IntelliJ Community.

Para finalizar, portanto, a recursividade é muito utilizada em análise e desenvolvimento de sistemas. Afinal, vivemos a Era da Informação.

ChatGPT

Aqui está um exemplo de uma implementação em Java do teste para medir o desempenho do algoritmo de Fibonacci:

import org.junit.Test;


public class FibonacciTest {
  @Test
  public void testFibonacciPerformance() {
      int n = 40;
      long startTime = System.nanoTime();
      long result = fibonacci(n);
      long endTime = System.nanoTime();
      System.out.println("Fibonacci of " + n + ": " + result);
      System.out.println("Time taken: " + (endTime - startTime) + " ns");
  }
  public static long fibonacci(int n) {
      if (n <= 1) return n;
      else return fibonacci(n-1) + fibonacci(n-2);
  }
}

Este teste calcula o número de Fibonacci de 40 e mede o tempo que leva para fazê-lo, em nanosegundos. A função fibonacci é uma implementação recursiva do algoritmo de Fibonacci. A função System.nanoTime() é usada para medir o tempo de execução do bloco de código passado como argumento.

Assim como as outras linguagens, essa implementação recursiva é ineficiente para valores grandes de n, para solucionar essa questão é recomendado o uso de programação dinâmica ou exponenciação de matrizes.

Compartilhe
Comentários (2)
Luis @luismendes070
Luis @luismendes070 - 21/01/2023 09:54

ChatGPT

Aqui está um exemplo de uma implementação em Java do teste para medir o desempenho do algoritmo de Fibonacci:

import org.junit.Test;


public class FibonacciTest {
  @Test
  public void testFibonacciPerformance() {
      int n = 40;
      long startTime = System.nanoTime();
      long result = fibonacci(n);
      long endTime = System.nanoTime();
      System.out.println("Fibonacci of " + n + ": " + result);
      System.out.println("Time taken: " + (endTime - startTime) + " ns");
  }
  public static long fibonacci(int n) {
      if (n <= 1) return n;
      else return fibonacci(n-1) + fibonacci(n-2);
  }
}


Este teste calcula o número de Fibonacci de 40 e mede o tempo que leva para fazê-lo, em nanosegundos. A função fibonacci é uma implementação recursiva do algoritmo de Fibonacci. A função System.nanoTime() é usada para medir o tempo de execução do bloco de código passado como argumento.

Assim como as outras linguagens, essa implementação recursiva é ineficiente para valores grandes de n, para solucionar essa questão é recomendado o uso de programação dinâmica ou exponenciação de matrizes.

Edney Landim
Edney Landim - 20/01/2023 12:30

muito bom