Sequência de Fibonacci
Gere os primeiros termos da sequência ou verifique se um número é de Fibonacci. Suporte a números grandes com precisão exata.
O que é a sequência de Fibonacci?
A sequência de Fibonacci é uma série de números onde cada termo é a soma dos dois anteriores:
F(0) = 0
F(1) = 1
F(n) = F(n−1) + F(n−2)Resultado: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144…
Foi descrita pelo matemático italiano Leonardo de Pisa (apelidado Fibonacci) em 1202, embora já fosse conhecida na Índia séculos antes.
A Razão Áurea (φ)
À medida que a sequência avança, a razão entre termos consecutivos converge para a razão áurea φ (phi):
φ = (1 + √5) / 2 ≈ 1,6180339887...Exemplos de convergência:
89/55 = 1,6181...
144/89 = 1,6179...
233/144 = 1,6180...A razão áurea aparece em espirais logarítmicas e proporções consideradas esteticamente agradáveis.
Fibonacci na natureza
Flores: o número de pétalas de muitas flores é um número de Fibonacci — 3 (trevo), 5 (rosa silvestre), 8 (cosmos), 13 (craveiro), 21 (chicória).
Espirais em conchas e galáxias: a espiral de Nautilus aproxima-se de uma espiral áurea (baseada em retângulos áureos).
Filotaxia: o arranjo de sementes em girassóis e pinhas segue padrões espirais cujos números são Fibonacci consecutivos (ex: 34 e 55 espirais numa semente de girassol).
Árvores: o número de galhos em certos níveis de uma árvore segue a sequência.
Fibonacci na programação
A sequência de Fibonacci é um exemplo clássico de recursão e memoização:
# Recursão ingênua (ineficiente)
def fib(n):
if n <= 1: return n
return fib(n-1) + fib(n-2)
# Com memoização (eficiente)
from functools import lru_cache
@lru_cache
def fib(n):
if n <= 1: return n
return fib(n-1) + fib(n-2)A versão ingênua tem complexidade O(2ⁿ). Com memoização: O(n).
Perguntas frequentes
A sequência começa em 0 ou 1?
Há duas convenções: F(0)=0, F(1)=1, F(2)=1… (usada aqui, padrão OEIS) e F(1)=1, F(2)=1, F(3)=2… O conteúdo matemático é idêntico, apenas a indexação difere.
Como verificar se um número é de Fibonacci?
Um número inteiro positivo N é Fibonacci se e somente se 5N² + 4 ou 5N² − 4 é um quadrado perfeito. Este é o teste de identidade de Fibonacci, eficiente para qualquer tamanho de número.
Por que a ferramenta usa BigInt acima de F(78)?
F(79) = 14.472.334.024.676.221 ultrapassa Number.MAX_SAFE_INTEGER (9.007.199.254.740.991). A partir daí, a aritmética de ponto flutuante perde precisão. BigInt garante resultados exatos para qualquer tamanho.