Os números de Fibonacci são uma sequência específica em que o primeiro valor é pré-declarado como 0 e o segundo valor é pré-declarado como 1. O restante dos números é produzido a partir desses dois, adicionando os dois números anteriores. Todos os números de Fibonacci são inteiros positivos, começando de 0. Os primeiros doze números de Fibonacci e como são obtidos são os seguintes:
0
1
1 + 0 = 1
1 + 1 = 2
2 + 1 = 3
3 + 2 = 5
5 + 3 = 8
8 + 5 = 13
13 + 8 = 21
21 + 13 = 34
34 + 21 = 55
55 + 34 = 89
Sem as expressões da soma, esses números de Fibonacci podem ser colocados em uma tabela da seguinte forma:
0 | 1 | 1 | 2 | 3 | 5 | 8 | 13 | 21 | 34 | 55 | 89 |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
A primeira linha tem os números de Fibonacci. A segunda linha possui índices baseados em zero, assumindo que os números de Fibonacci estejam em uma matriz.
Os números de fibonacci podem ser produzidos no tempo O (n) e no tempo O (1). Nestes expressões de complexidade do tempo, n significa n operações principais e 1 significa 1 operação principal. Com o (n), n números de fibonacci são produzidos, começando a partir de 0. Com O (1), um número de Fibonacci é produzido a partir de um índice correspondente. É por isso que é preciso apenas uma operação principal em vez de n operações principais.
O objetivo deste artigo é explicar como produzir números de fibonacci, de qualquer maneira, usando o python.
Fórmula para um número de fibonacci
A definição formal de um número de Fibonacci é:
onde fn é o número de Fibonacci no N baseado em zero Produzindo números de fibonacci no tempo O (n) Se n for 1, então apenas 0 seria impresso como um número de fibonacci. Se n for 2, então 0 e 1 seriam impressos como números de fibonacci, nessa ordem. Se n for 3, então 0, 1 e 1 seriam impressos como números de Fibonacci nessa ordem. Se n for 4, então 0, 1, 1 e 2 seriam impressos como números de Fibonacci nessa ordem. Se n for 5, então 0, 1, 1, 2 e 3 seriam impressos como números de Fibonacci, nessa ordem. Se n for 6, então 0, 1, 1, 2, 3 e 5 seriam impressos como números de Fibonacci, nessa ordem - e assim por diante. A função Python para produzir os primeiros n números de fibonacci é: Começa criando uma matriz de n elementos, todos inicializados para zeros. Esta matriz manterá os números de Fibonacci. O primeiro número de Fibonacci, 0, já está lá. O segundo número de Fibonacci, 1, é atribuído pela próxima declaração (na função). Depois, há o loop for, que começa do índice 2 a pouco antes de n. Tem a declaração: Isso adiciona os dois números anteriores imediatos. Código para chamar a função e imprimir os primeiros doze números de Fibonacci podem ser: N = 12 A saída é: Produzindo um número de fibonacci em tempo constante Existe uma fórmula matemática que relaciona um índice baseado em zero ao seu número de fibonacci correspondente. A fórmula é: Observe que, no lado direito da equação, não é a raiz quadrada de 5 que é elevada ao poder n; É a expressão entre parênteses que é elevada ao poder n. Existem duas dessas expressões. Se n for 0, fibn seria 0. Se n é 1, fibn seria 1. Se n é 2, fibn seria 1. Se n é 3, fibn seria 2. Se n é 4, fibn seria 3 - e assim por diante. O leitor pode verificar essa fórmula matematicamente, substituindo valores diferentes por n e avaliando. n é um índice baseado em zero nesta fórmula. O código Python para esta fórmula é: importação de matemática O módulo de matemática foi importado. Tem a função raiz quadrada. O operador, ** é usado para poder. A função fibno () implementa a fórmula diretamente. Uma chamada adequada e impressão para a função fibno () é: N = 11 A saída é: É possível remover os dígitos decimais desnecessários da resposta. No entanto, isso é uma discussão para algum outro momento. Se diferentes números de fibonacci forem necessários para diferentes índices de N, a função fibno () deve ser chamada uma vez para cada um dos n índices para retornar os diferentes números de fibonacci correspondentes. O programa a seguir faz isso para os índices baseados em zero, 7 a 9 (inclusive): importação de matemática A saída é: Observe a maneira como o loop for codificado em Python. O primeiro índice é 7. O próximo índice é 8 e o último índice é 9. 10 no argumento do alcance é 9 + 1. O valor na posição de 10 deve ser o último índice baseado em zero mais 1. O primeiro argumento, 7, é o índice de partida zero. Conclusão Os números de Fibonacci são uma sequência específica de números inteiros (números inteiros positivos). Começa com 0, seguido por 1 incondicionalmente. O restante dos números é desenvolvido a partir daí, adicionando os dois números anteriores anteriores. Para obter os primeiros n números de Fibonacci, aceite 0 e 1 como os dois primeiros e, em seguida, para o resto, use um loop para uma declaração como: o que adiciona os dois números anteriores imediatos. Para obter apenas um número de fibonacci de um índice baseado em zero, use a fórmula:def fibonacci (n):
arr = [0] * (n)
arr [1] = 1
para i no intervalo (2, n):
arr [i] = arr [i - 1] + arr [i - 2]
retornar arrarr [i] = arr [i - 1] + arr [i - 2]
A = fibonacci (n)
para i no intervalo (n):
Imprimir (a [i], end = ")
imprimir()0 1 1 2 3 5 8 13 21 34 55 89
def fibno (n):
Fibn = (((1+matemática.sqrt (5))/2) ** n - ((1 -math.sqrt (5)) / 2) ** n) / matemática.SQRT (5)
retornar fibn
ret = fibno (n)
impressão (ret)89.00000000000003
def fibno (n):
Fibn = (((1+matemática.sqrt (5))/2) ** n - ((1 -math.sqrt (5)) / 2) ** n) / matemática.SQRT (5)
retornar fibn
para i no intervalo (7, 10):
Imprimir (Fibno (i), end = ")
imprimir()13.000000000000002 21.000000000000004 34.00000000000001
arr [i] = arr [i - 1] + arr [i - 2]