Implementando a Sequência de Fibonacci em Python
Publicados: 2023-02-23Python é uma linguagem de programação multiuso poderosa e versátil que facilita a implementação de Redes Neurais Artificiais e suporta Processamento de Linguagem Natural, Aprendizado Profundo, Reconhecimento Facial, Algoritmos Genéticos e muitas outras tarefas baseadas em IA de última geração.
Este artigo explora algumas das principais maneiras pelas quais o Python pode ser usado para gerar com precisão a sequência de Fibonacci - um ótimo exemplo de algoritmos relativamente simples que não são úteis apenas por si mesmos, mas geralmente são fundamentais para a construção de programas avançados capazes de executar tarefas complexas. funcionalidades cognitivas.
Índice
O que é a Sequência de Fibonacci?
A Sequência de Fibonacci está talvez entre as mais simples, as mais antigas conhecidas e a mais famosa das sequências matemáticas conhecidas pela humanidade.
É uma série contínua de números inteiros inteiros, onde cada número sucessivo é igual à soma de seus dois números anteriores. , 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, 28657, 46368 e assim por diante.
Com zero como ponto de partida, a Sequência de Fibonacci se estende indefinidamente de forma bidirecional da seguinte forma:
…610, -377, 233, -144, 89, -55, 34, -21, 13, -8, 5, -3, 2, -1, 1, 0 , 1, 1, 2, 3, 5 , 8, 13, 21, 34, 55, 89, 144, 233, 377, 610… A sequência à esquerda do zero é conhecida como sequência “negafibonacci”.
Confira nossos cursos de tecnologia gratuitos para obter uma vantagem sobre a concorrência.
A sequência de Fibonacci pode ser representada matematicamente da seguinte forma:
n | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
x n | 0 | 1 | 1 | 2 | 3 | 5 | 8 | 13 | 21 | 34 | 55 | 89 | 144 | 233 | 377 | 610 |
Onde n é o número do termo e x n é o valor do termo. A fórmula para calcular o valor do termo x n é:
x n = x n-1 + x n-2
Assim, o valor do termo número 8, por exemplo, é:
x 8 = x 7 + x 6
x 8 = 13 + 8
x 8 = 21
Aqui estão algumas curiosidades relacionadas à Sequência de Fibonacci: O Dia de Fibonacci é comemorado em 23 de novembro, pois a data pode ser representada pelos dígitos 1, 1, 2 e 3 – que representam um segmento sequenciado corretamente da Série de números de Fibonacci.
Explore nossos cursos populares de engenharia de software
Mestre em Ciência da Computação pela LJMU & IIITB | Programa de Certificação de Cibersegurança Caltech CTME |
Bootcamp de Desenvolvimento Full Stack | Programa PG em Blockchain |
Programa Executivo PG em Desenvolvimento Full Stack | |
Veja todos os nossos cursos abaixo | |
Cursos de Engenharia de Software |
História e Origens da Sequência de Fibonacci
Leonardo Pisano Bogollo, popularmente conhecido como Fibonacci, que na linguagem coloquial italiana se traduz aproximadamente como 'filho de Bonacci'.
Fibonacci foi creditado com a formulação dessa sequência especial de números, que – como consequência – recebeu seu nome. Ele o apresentou a uma grande parte da Europa Ocidental no início do século 13 dC por meio de seu livro de referência -Liber Abaci.
Amplamente considerado um dos matemáticos mais talentosos de seu tempo, Fibonacci também foi creditado com a adoção generalizada dos numerais hindu-arábicos em toda a Europa, que até então usava os numerais romanos muito mais complicados.
No entanto, o que hoje é chamado de Sequência de Fibonacci, agora é conhecido por ter sido usado na Índia antiga desde o século III aC.
Encontrou expressão nos Pingala-sutras, um antigo tratado de prosódia sânscrita, bem como no Natya Shastra, um tratado sobre as antigas artes cênicas indianas, atribuído aos reverenciados sábios da Índia antiga, Acharya Pingala e Bharata Muni, respectivamente.
O comentário mais definitivo sobre a sequência aparece na obra de Virahanka no início do século VIII EC. Embora este texto em si não tenha sido rastreado, ele foi referido e amplamente citado na obra de Gopala em 1135 EC. Coincidentemente, os dígitos desse ano representam uma sequência consecutiva de números de Fibonacci.
Outro estudioso indiano do ritmo métrico, Acharya Hemachandra, tem a reputação de ter um conhecimento íntimo da sequência, que ele descreveu em grande detalhe em 1150 EC. Isso antecede o trabalho de Fibonacci em mais de 50 anos.
Confira os Cursos de Desenvolvimento de Software da upGrad
Fórmula de Binet
Como todas as sequências constantes recursivas com coeficientes constantes, os números de Fibonacci podem ser mostrados como uma expressão de forma fechada que veio a ser conhecida como fórmula de Binet. Nomeada em homenagem a Jacques Philippe Marie Binet, um proeminente matemático francês do início do século XIX, a Fórmula de Binet pode ser representada da seguinte forma:
Dado que F n é o n-ésimo número de Fibonacci:
O que pode ser derivado da fórmula acima é o fato de que, com exceção dos primeiros números, a razão entre cada par consecutivo de números na série de Fibonacci converge progressivamente para o que é chamado de Razão Áurea – 1:1,618, denotado pela 21ª letra do alfabeto grego – Φ (phi).
Isso significa que cada número na série é 0,6180339887 do número de Fibonacci que o segue OU que cada número sucessivo é 1,6180339887 vezes o número que o precede na sequência de Fibonacci.
Habilidades de desenvolvimento de software sob demanda
Cursos de JavaScript | Cursos Básicos de Java | Cursos de estruturas de dados |
Cursos de Node.js | Cursos de SQL | Cursos de desenvolvimento full stack |
Cursos NFT | Cursos DevOps | Cursos de Big Data |
Cursos React.js | Cursos de segurança cibernética | Cursos de computação em nuvem |
Cursos de Design de Banco de Dados | Cursos de Python | Cursos de Criptomoedas |
A Sequência de Fibonacci e a Razão Áurea
O significado da Sequência de Fibonacci e seu derivado, a proporção áurea, é significativamente aumentado devido à sua recorrência estranhamente frequente na natureza. Alguns dos exemplos mais comuns disso incluem:
- O número de pétalas em uma flor é quase invariavelmente um número de Fibonacci, seja o lírio de 3 pétalas, o botão de ouro de 5 pétalas, a flor de chicória de 21 pétalas ou a margarida de 34 pétalas.
Curiosamente, essa firme conformidade com os números de Fibonacci parece ser um produto do design darwiniano, pois os cientistas descobriram que esses arranjos de pétalas particulares garantem que cada uma dessas flores receba uma exposição ideal à luz solar, umidade e agentes de polinização, como pássaros e insetos. . - A proporção áurea ou Φ é vista em quase todos os padrões espirais que ocorrem naturalmente - desde cabeças de sementes de um girassol até galáxias inteiras, de protuberâncias em uma pinha a furacões, de espinhos em um abacaxi à curvatura dos chifres de uma cabra e de florzinhas de uma couve-flor aos verticilos de uma impressão digital humana.
O padrão em espiral de uma concha de nautilus é considerado uma representação particularmente icônica do que é chamado de "Espiral de Fibonacci". - A ramificação das árvores e sistemas radiculares, a proporção entre abelhas macho e fêmea em uma colméia, várias partes do corpo de animais – de micróbios a caracóis, tartarugas a baleias, tudo está de acordo com a Proporção Áurea.
- Aspectos da fisiologia humana – a relação entre o comprimento total do corpo e a distância de nossas cabeças às pontas dos dedos, por exemplo, ou a relação entre o comprimento de nossos antebraços e nossas mãos, são todos projetados de acordo com Φ.
A cóclea no ouvido humano é uma espiral de Fibonacci, assim como o cordão umbilical. Acredita-se até que somos inconscientemente atraídos por rostos cujas proporções de altura e largura se aproximam da proporção áurea.
Em sua essência, a matemática é uma busca para descobrir padrões em todas as coisas. Não há arena melhor ou mais abrangente para buscar esses padrões do que no colo da mãe natureza.
De micro-organismos a galáxias, a Sequência de Fibonacci encontra reflexo em uma gama impressionante de fisiologia natural, bem como fenômenos, de escala microscópica a cósmica - e com razão.
A Proporção Áurea ou Φ confere um equilíbrio ergonómico de harmonia estética e funcional a tudo aquilo em que se expressa. É por esta razão que a Proporção Áurea é também designada por Proporção Divina.
Mas o significado da Sequência de Fibonacci se estende muito além do mundo natural, encontrando expressão em uma ampla gama de empreendimentos humanos – na matemática, nas ciências e nas artes.
Leia nossos artigos populares relacionados ao desenvolvimento de software
Como implementar a abstração de dados em Java? | O que é classe interna em Java? | Identificadores Java: Definição, Sintaxe e Exemplos |
Entendendo o encapsulamento em OOPS com exemplos | Argumentos de linha de comando em C explicados | Os 10 principais recursos e características da computação em nuvem em 2022 |
Polimorfismo em Java: Conceitos, Tipos, Características e Exemplos | Pacotes em Java e como usá-los? | Tutorial do Git para iniciantes: aprenda o Git do zero |
Gerando a sequência de Fibonacci usando Python
A Sequência de Fibonacci e a Razão Áurea são parte integrante de vários aspectos de:
- Álgebra, geometria, estatística e trigonometria – que podem ser aplicadas a várias práticas econômicas e à análise do mercado de ações.
- Biologia, física e ciência da computação – que encontra aplicação em biologia sintética e genética, engenharia civil e mecânica, arquitetura, design de interiores e, claro, programação de computadores.
- Arte e design gráfico, bem como poesia, música e dança
Muitas vezes, é uma etapa fundamental na criação de uma ampla variedade de aplicativos úteis vinculados aos assuntos acima e além.
A Sequência de Fibonacci pode ser gerada usando uma ampla variedade de linguagens de programação. Como afirmado anteriormente, o Python é um dos mais poderosos e versáteis – capaz de usar e manipular os Números de Fibonacci e a Sequência de Fibonacci de várias maneiras para desenvolver algumas das soluções tecnológicas mais avançadas.
Confira o Programador de Certificado Avançado da upGrad em Blockchain da IIIT Bangalore
Aqui estão alguns dos métodos pelos quais o Python pode ser usado para gerar a Sequência de Fibonacci:
Abordagem iterativa
Neste método, o algoritmo :
- Atribui quaisquer duas variáveis para representar os dois termos consecutivos iniciais dentro da sequência. Onde 0 representa o primeiro termo da sequência e 1 representa o segundo.
- Define o intervalo desejado de termos a serem calculados na sequência e loop de 0 para cima.
- A cada iteração, o algoritmo:
- Adiciona as duas variáveis.
- Em seguida, atribui o valor da segunda variável à primeira variável
e a soma das duas variáveis anteriores para a segunda variável. - E assim por diante…
O código correspondente seria escrito da seguinte forma :
def fibo (num):
a = 0
b = 1
para i em xrange(0, 20):
imprimir um
a, b = b, a + b
A saída correspondente seria os primeiros vinte números da Sequência de Fibonacci :
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89,
144, 233, 377, 610, 987, 1597, 2584, 4181
Abordagem Recursiva
Neste método, o algoritmo deriva :
O valor de cada termo sucessivo somando o valor dos dois termos anteriores. Isso pode ser representado como termo n = termo n-1 + termo n-2.
As duas únicas exceções a essa regra são quando o valor dos termos é 0 e 1, ambos retornando valores inalterados. Essas exceções podem ser representadas como termo n = termo n.
O código correspondente seria escrito da seguinte forma :
def recur_fodo (n):
se n < = 1:
retornar n
outro:
return (recur_fibo (n-1) + recur_fibo (n-2) )
N termos = 20
# verifica se o número de termos é válido
se nerms <= 0:
print("Insira um número inteiro positivo")
outro:
imprima (“Sequência de Fibonacci”)
Para i no intervalo (nterms):
Imprimir (recur_fibo i))
A saída correspondente seria os primeiros vinte números da Sequência de Fibonacci :
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89,
144, 233, 377, 610, 987, 1597, 2584, 4181
Algumas aplicações independentes da Sequência de Fibonacci
Além de ser uma etapa fundamental no desenvolvimento de vários modelos e aplicativos complexos, os números de Fibonacci, por si só, possuem algumas características únicas que os tornam inestimáveis no desempenho de determinadas tarefas:
- Os números de Fibonacci podem ser usados para analisar o tempo de execução computacional do algoritmo de Euclides para identificar o maior divisor comum de um par aleatório de números inteiros, dado o fato de que um par de números de Fibonacci sucessivos normalmente apresenta o desafio mais severo para esse algoritmo.
- Os números de Fibonacci representam exclusivamente uma sequência completa, de modo que cada inteiro positivo na série é a soma de dois números de Fibonacci, qualquer um dos quais pode ser usado apenas uma vez.
- Algoritmos baseados em números de Fibonacci auxiliaram no desenvolvimento da técnica de busca de Fibonacci, a estrutura de dados de heap de Fibonacci e os gráficos de cubo de Fibonacci usados para interligar sistemas paralelos e distribuídos.
- Os números de Fibonacci são usados no scrum poker – uma técnica baseada em consenso e gamificada para estimar os objetivos de desenvolvimento no desenvolvimento de software.
- A retração dos níveis de Fibonacci é comumente usada na análise técnica para negociação no mercado de ações.
Para concluir
Ao longo deste artigo, tentamos despertar seu interesse na Sequência de Fibonacci ou na Razão Áurea – suas principais características e sua recorrência surpreendentemente frequente no mundo natural – tanto animado quanto inanimado.
Tentamos capturar o impacto e recriar a maravilha que esse fenômeno matemático criou em uma gama amplamente divergente e multidimensional de atividades humanas – artes e ciências, engenharia e tecnologia, anatomia e genética, economia e finanças… e muito mais .
Tentamos mostrar como uma linguagem de programação extremamente versátil chamada Python pode ajudá-lo a manipular esses conceitos matemáticos para beneficiar a humanidade de maneiras inesperadamente diversas – direta e indiretamente.
É nossa esperança fervorosa que esta poderosa combinação de Python e a Sequência de Fibonacci tenha e continue a capturar sua imaginação, inflamar suas mentes, alimentar suas aspirações e inspirá-lo aos maiores patamares de realização. Codificação feliz! Feliz sonho!
No upGrad, entendemos a importância do aprendizado prático, especialmente quando se trata de desenvolvimento de software. Como resultado, nossos cursos e iniciativas de treinamento têm a praticidade em sua essência. Uma dessas iniciativas é o Full Stack Development Bootcamp , que ajudará você a desenvolver todas as habilidades relevantes necessárias para se destacar no desenvolvimento full-stack.