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

Recursividade, Fibonacci e python

  • #Python

A sequência de Fibonacci é conhecida como 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, … . Assim, saber implementar o algoritmo na linguagem python 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 python conta com o ferramental da Microsoft e JetBrains.

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

Compartilhe
Comentários (3)
Edney Landim
Edney Landim - 21/01/2023 19:34

Parabéns pelo artigo

Luis @luismendes070
Luis @luismendes070 - 21/01/2023 09:25

Bom dia @belisnalva4!

Utilizei ChapGPT para implementar os testes e a do medida o tempo de execução do algoritmo Fibonnaci na linguagem de programação python


import time


def fibonacci(n: int) -> int:
  if n <= 1:
      return n
  return fibonacci(n-1) + fibonacci(n-2)


def test_fibonacci_performance():
  n = 40
  start_time = time.time()
  result = fibonacci(n)
  end_time = time.time()
  print(f"Fibonacci of {n}: {result}")
  print(f"Time taken: {end_time - start_time:.6f} seconds")


test_fibonacci_performance()

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

Alternativamente, também é possível usar outras bibliotecas como timeit para medir o desempenho do algoritmo de Fibonacci.

import timeit


def test_fibonacci_performance():
  n = 40
  time = timeit.timeit(lambda: fibonacci(n), number=1)
  print(f"Fibonacci of {n}: {fibonacci(n)}")
  print(f"Time taken: {time:.6f} seconds")


test_fibonacci_performance()


Observe que a implementação recursiva do algoritmo de Fibonacci é muito ineficiente e leva muito tempo e memória para calcular grandes números, não é recomendado para grandes entradas. Existem algoritmos mais eficientes, como programação dinâmica e exponenciação de matrizes, que são mais adequados para grandes entradas.

Belisnalva Jesus
Belisnalva Jesus - 20/01/2023 09:04

Bom dia Luis!!

Legal o seu artigo, mas se você acrescentasse exemplos das diferenças entre elas ficaria MASSA!!