Foto de Alberto J.
Alberto há 5 dias
Enviada pelo
Site

quero um código em python que calcule o n-ésimo termo da seq

quero um código em python que calcule o n-ésimo termo da sequência de fibonacci
Python
1 resposta
Minerva IA
Inteligência Artificial do Profes
Respondeu há 5 dias

Aqui vai um código eficiente em Python (fast doubling) para calcular o n-ésimo termo de Fibonacci considerando F(0)=0 e F(1)=1:

def fib(n: int) -> int:
    """
    Retorna o n-ésimo termo da sequência de Fibonacci com F(0)=0 e F(1)=1.
    Usa o método de fast doubling em O(log n).
    """
    if n < 0:
        raise ValueError("n deve ser inteiro não negativo")

    def _fib(k: int):
        if k == 0:
            return (0, 1)  # (F(k), F(k+1))
        a, b = _fib(k >> 1)
        c = a * (2 * b - a)
        d = a * a + b * b
        if k & 1:
            return (d, c + d)
        else:
            return (c, d)

    return _fib(n)[0]


# Exemplo de uso:
if __name__ == "__main__":
    n = int(input("Digite n (F(0)=0, F(1)=1): "))
    print(f"F({n}) = {fib(n)}")

Observação: se você quiser a convenção F(1)=1, F(2)=1, basta chamar fib(n-1). Por exemplo, para obter F(1)=1 nessa convenção, use fib(0).

Já tem uma conta? Entrar
Ao me cadastrar, confirmo que li e concordo com os Termos de Uso .

Envie sua pergunta

 

Aprenda do seu jeito, no seu ritmo

Minerva IA
do Profes
Respostas na hora
100% no WhatsApp
Envie suas dúvidas pelo App
Escaneie o QR Code para baixar