############################################################################## # Parte do livro Introdução à Programação com Python # Autor: Nilo Ney Coutinho Menezes # Editora Novatec (c) 2010-2017 # Primeira edição - Novembro/2010 - ISBN 978-85-7522-250-8 # Primeira reimpressão - Outubro/2011 # Segunda reimpressão - Novembro/2012 # Terceira reimpressão - Agosto/2013 # Segunda edição - Junho/2014 - ISBN 978-85-7522-408-3 # Primeira reimpressão - Segunda edição - Maio/2015 # Segunda reimpressão - Segunda edição - Janeiro/2016 # Terceira reimpressão - Segunda edição - Junho/2016 # Quarta reimpressão - Segunda edição - Março/2017 # # Site: http://python.nilo.pro.br/ # # Arquivo: listagem\capitulo 08\08.14 - Função recursiva de Fibonacci.py ############################################################################## def fibonacci(n): if n <= 1: return n else: return fibonacci(n-1) + fibonacci(n-2)
\[F(n)=\begin{cases}1,&n\leq2\\F(n-1)+F(n-2),&n>2\end{cases}\]
Existem diversas formas de determinar o n-ésimo termo da sequência de Fibonacci. O mais eficiente deles é usar a seguinte fórmula:
\[F(n)=\dfrac1{\sqrt5}\left[\left(\dfrac{1+\sqrt5}2\right)^n-\left(\dfrac{1-\sqrt5}2\right)^n\right]\]
Então uma função em python que determina o n-ésimo termo da sequência é a seguinte:
1562395883067
Outra forma simples porém menos eficiente é usando a definição recursiva:
1562395994880
Para escrever sua resposta aqui, entre ou crie uma conta.
Linguagens de Programação e Estrutura de Dados
Compartilhar