Les nombres de Fibonacci sont une séquence particulière où la première valeur est pré-déclarée comme 0 et la deuxième valeur est pré-déclarée comme 1. Les autres nombres sont produits à partir de ces deux en ajoutant les deux nombres précédents. Tous les chiffres Fibonacci sont des entiers positifs, à partir de 0. Les douze premiers nombres de Fibonacci et la façon dont ils sont obtenus sont les suivants:
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
Sans les expressions de somme, ces chiffres Fibonacci peuvent être placés dans un tableau comme suit:
0 | 1 | 1 | 2 | 3 | 5 | 8 | 13 | 21 | 34 | 55 | 89 |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | dix | 11 |
La première ligne a les numéros de Fibonacci. La deuxième ligne a des index zéro, en supposant que les numéros de Fibonacci sont dans un tableau.
Les nombres de Fibonacci peuvent être produits en temps o (n) et en temps o (1). Dans ces expressions de complexité temporelle, n signifie n opérations principales et 1 signifie 1 opération principale. Avec o (n), n les nombres de Fibonacci sont produits, à partir de 0. Avec O (1), un numéro Fibonacci est produit à partir d'un indice correspondant. C'est pourquoi il ne faut qu'une seule opération principale au lieu de n opérations principales.
Le but de cet article est d'expliquer comment produire des nombres de Fibonacci, de toute façon, en utilisant Python.
Formule pour un numéro de fibonacci
La définition formelle d'un numéro Fibonacci est:
où fn Le numéro Fibonacci est-il au N zéro Produire des nombres de fibonacci en temps o (n) Si n est 1, alors seulement 0 serait imprimé comme un numéro de fibonacci. Si n est 2, alors 0 et 1 serait imprimé en tant que numéros de fibonacci, dans cet ordre. Si n est 3, alors 0, 1 et 1 serait imprimé en tant que numéros de fibonacci dans cet ordre. Si n est 4, alors 0, 1, 1 et 2 seraient imprimés en tant que numéros Fibonacci dans cet ordre. Si n est 5, alors 0, 1, 1, 2 et 3 seraient imprimés sous forme de numéros de fibonacci, dans cet ordre. Si n est 6, alors 0, 1, 1, 2, 3 et 5 seraient imprimés sous forme de numéros de fibonacci, dans cet ordre - et ainsi de suite. La fonction Python pour produire les premiers nombres N Fibonacci est: Il commence par créer un tableau de n éléments, tous initialisés en zéros. Ce tableau contiendra les numéros Fibonacci. Le premier numéro Fibonacci, 0, est déjà là. Le deuxième numéro Fibonacci, 1, est attribué par l'instruction suivante (dans la fonction). Ensuite, il y a la boucle for, qui commence de l'indice 2 à juste avant n. Il a la déclaration: Cela ajoute les deux nombres précédents immédiats. Code pour appeler la fonction et imprimer les douze premiers numéros Fibonacci peuvent être: N = 12 La sortie est: Produisant un numéro de fibonacci en temps constant Il existe une formule mathématique qui relie un indice basé sur un zéro à son numéro Fibonacci correspondant. La formule est: Notez que sur le côté droit de l'équation, ce n'est pas la racine carrée de 5 qui est élevée au pouvoir n; c'est l'expression entre parenthèses qui est élevée au pouvoir n. Il y a deux telles expressions. Si n est 0, Fibn serait 0. Si n est 1, fibn serait 1. Si n est 2, Fibn serait 1. Si n est 3, Fibn serait 2. Si n est 4, Fibn serait 3 - et ainsi de suite. Le lecteur peut vérifier cette formule mathématiquement en substituant différentes valeurs pour n et en évaluant. n est un indice basé sur un zéro dans cette formule. Le code Python de cette formule est: mathématiques d'importation Le module mathématique a été importé. Il a la fonction de racine carrée. L'opérateur, ** est utilisé pour l'alimentation. La fonction fibno () implémente directement la formule. Un appel et une impression appropriés pour la fonction fibno () est: N = 11 La sortie est: Il est possible de retirer les chiffres décimaux inutiles de la réponse. Cependant, c'est une discussion pour une autre fois. Si différents nombres de Fibonacci sont nécessaires pour différents index N, la fonction fibno () doit être appelée une fois pour chacun des n index pour renvoyer les différents nombres Fibonacci correspondants. Le programme suivant le fait pour les index basés sur zéro, 7 à 9 (inclus): mathématiques d'importation La sortie est: Notez la façon dont la boucle forte a été codée dans Python. Le premier index est 7. L'indice suivant est 8, et le dernier index est 9. 10 dans l'argument de la plage est de 9 + 1. La valeur en position de 10 doit être le dernier indice basé sur zéro plus 1. Le premier argument, 7, est l'indice de démarrage basé sur le zéro. Conclusion Les nombres de Fibonacci sont une séquence particulière de nombres entiers (entiers positifs). Il commence par 0, suivi de 1 inconditionnellement. Les autres nombres sont développés à partir de là en ajoutant les deux nombres précédents immédiats. Pour obtenir les premiers nombres N Fibonacci, acceptez 0 et 1 comme les deux premiers, puis pour le reste, utilisez une boucle pour une déclaration comme: qui ajoute les deux nombres précédents immédiats. Pour obtenir un seul numéro de Fibonacci à partir d'un index zéro n, utilisez la formule:def fibonacci (n):
arr = [0] * (n)
arr [1] = 1
pour i à portée (2, n):
arr [i] = arr [i - 1] + arr [i - 2]
retourr arrarr [i] = arr [i - 1] + arr [i - 2]
A = fibonacci (n)
pour i à portée (n):
imprimer (a [i], end = ")
imprimer()0 1 1 2 3 5 8 13 21 34 55 89
def fibno (n):
Fibn = (((1 + mathématiques.sqrt (5)) / 2) ** n - ((1-Math.sqrt (5)) / 2) ** n) / math.SQRT (5)
retour fibn
ret = fibno (n)
imprimer (ret)89.00000000000003
def fibno (n):
Fibn = (((1 + mathématiques.sqrt (5)) / 2) ** n - ((1-Math.sqrt (5)) / 2) ** n) / math.SQRT (5)
retour fibn
pour I à portée (7, 10):
imprimer (fibno (i), end = ")
imprimer()13.000000000000002 21.000000000000004 34.00000000000001
arr [i] = arr [i - 1] + arr [i - 2]