Implémentation de la suite de Fibonacci en Python

Publié: 2023-02-23

Python est un langage de programmation polyvalent puissant et polyvalent qui facilite la mise en œuvre de réseaux de neurones artificiels et prend en charge le traitement du langage naturel, l'apprentissage en profondeur, la reconnaissance faciale, les algorithmes génétiques et bien d'autres tâches de pointe basées sur l'IA.

Cet article explore certaines des principales façons dont Python peut être utilisé pour générer avec précision la séquence de Fibonacci - un excellent exemple d'algorithmes relativement simples qui ne sont pas seulement utiles en eux-mêmes, mais sont souvent fondamentaux pour la construction de programmes avancés capables d'effectuer des opérations complexes. fonctionnalités cognitives.

Table des matières

Qu'est-ce que la suite de Fibonacci ?

La séquence de Fibonacci est peut-être l'une des séquences mathématiques les plus simples, les plus anciennes et les plus célèbres connues de l'humanité.

C'est une série continue d'entiers entiers, où chaque nombre successif est égal à la somme de ses deux nombres précédents La série de Fibonacci commence par 0 et 1 et se déroule comme suit : 0, 1, 1, 2, 3, 5, 8, 13 , 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, 28657, 46368 et ainsi de suite.

Avec zéro comme point de départ, la séquence de Fibonacci s'étend indéfiniment de manière bidirectionnelle comme suit :
…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… La séquence à gauche du zéro est connue sous le nom de séquence « negafibonacci ».

Consultez nos cours de technologie gratuits pour vous démarquer de la concurrence.

La suite de Fibonacci peut être représentée mathématiquement comme suit :

n 0 1 2 3 4 5 6 7 8 9 dix 11 12 13 14 15
xn _ 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610

Où n est le nombre de termes et x n est la valeur du terme. La formule pour calculer la valeur du terme x n est :
x n = x n-1 + x n-2

Ainsi, la valeur du terme numéro 8 par exemple est :

x 8 = x 7 + x 6

x 8 = 13 + 8

x 8 = 21

Voici quelques anecdotes liées à la séquence de Fibonacci : le jour de Fibonacci est observé le 23 novembre, car la date peut être représentée par les chiffres 1, 1, 2 et 3 - qui représentent un segment correctement séquencé de la série de nombres de Fibonacci.

Explorez nos cours populaires de génie logiciel

Master of Science en informatique de LJMU & IIITB Programme de certificat de cybersécurité Caltech CTME
Bootcamp de développement de la pile complète Programme PG dans Blockchain
Programme exécutif PG en développement Full Stack
Voir tous nos cours ci-dessous
Cours de génie logiciel

Histoire et origines de la suite de Fibonacci

Leonardo Pisano Bogollo, populairement connu sous le nom de Fibonacci, qui, dans le langage italien familier, se traduit approximativement par « fils de Bonacci ».

Fibonacci a été crédité de la formulation de cette séquence spéciale de nombres, qui - par conséquent - porte son nom. Il l'a introduit dans une grande partie de l'Europe occidentale au début du XIIIe siècle de notre ère par le biais de son livre historique -Liber Abaci.

Largement considéré comme l'un des mathématiciens les plus talentueux de son temps, Fibonacci a d'ailleurs été également crédité de l'adoption généralisée des chiffres hindous-arabes dans toute l'Europe, qui utilisait jusque-là les chiffres romains beaucoup plus encombrants.

Cependant, ce que l'on appelle aujourd'hui la séquence de Fibonacci est maintenant connu pour avoir été utilisé dans l'Inde ancienne dès le 3ème siècle avant notre ère.

Il a trouvé son expression dans les Pingala-sutras, un ancien traité de prosodie sanskrite, ainsi que dans le Natya Shastra, un traité sur les anciens arts du spectacle indiens, attribués respectivement aux sages vénérés de l'Inde ancienne, Acharya Pingala et Bharata Muni.

Le commentaire le plus définitif sur la séquence apparaît dans les travaux de Virahanka au début du 8ème siècle de notre ère. Bien que ce texte lui-même n'ait pas été retracé, il a été mentionné et abondamment cité dans l'œuvre de Gopala en 1135 CE. Par coïncidence, les chiffres de cette année représentent une séquence consécutive de nombres de Fibonacci.

Un autre érudit indien du rythme métrique, Acharya Hemachandra, est réputé avoir eu une connaissance intime de la séquence, qu'il a décrite en détail en 1150 CE. Cela précède le travail de Fibonacci de plus de 50 ans.

Découvrez les cours de développement logiciel d'upGrad

Formule de Binet

Comme toutes les séquences constantes récursives à coefficients constants, les nombres de Fibonacci peuvent être présentés comme une expression de forme fermée connue sous le nom de formule de Binet. Nommée d'après Jacques Philippe Marie Binet, un éminent mathématicien français du début du XIXe siècle, la formule de Binet peut être représentée comme suit :

Sachant que F n est le nième nombre de Fibonacci :

Ce qui peut être déduit de la formule ci-dessus est le fait qu'à l'exception des premiers nombres, le rapport entre chaque paire consécutive de nombres dans la série de Fibonacci converge progressivement vers ce que l'on appelle le nombre d'or - 1: 1,618, désigné par le 21e lettre de l'alphabet grec – Φ (phi).

Cela signifie que chaque nombre de la série est 0,6180339887 du nombre de Fibonacci qui le suit OU que chaque nombre successif est 1,6180339887 fois le nombre qui le précède dans la suite de Fibonacci.

Compétences en développement de logiciels à la demande

Cours JavaScript Cours Java de base Cours de Structures de Données
Cours Node.js Cours SQL Cours de développement full stack
Cours NFT Cours DevOps Cours Big Data
Cours React.js Cours de cybersécurité Cours d'informatique en nuage
Cours de conception de bases de données Cours Python Cours de crypto-monnaie

La suite de Fibonacci et le nombre d'or

L'importance de la séquence de Fibonacci et de son dérivé, le nombre d'or, est considérablement accrue en raison de sa récurrence étrangement fréquente dans la nature. Certains des exemples les plus courants de ceci incluent:

  • Le nombre de pétales sur une fleur est presque invariablement un nombre de Fibonacci, qu'il s'agisse du lys à 3 pétales, de la renoncule à 5 pétales, de la fleur de chicorée à 21 pétales ou de la marguerite à 34 pétales.
    Curieusement, cette conformité fidèle aux nombres de Fibonacci semble être un produit de la conception darwinienne, car les scientifiques ont découvert que ces arrangements particuliers de pétales garantissent que chacune de ces fleurs bénéficie d'une exposition optimale à la lumière du soleil, à l'humidité et aux agents de pollinisation tels que les oiseaux et les insectes. .
  • Le nombre d'or ou Φ est observé dans presque tous les motifs en spirale naturels - des têtes de graine d'un tournesol à des galaxies entières, des protubérances sur une pomme de pin aux ouragans, des épines d'un ananas à la courbure des cornes d'une chèvre et des fleurons d'un chou-fleur aux verticilles sur une empreinte digitale humaine.
    Le motif en spirale d'une coquille de nautile est considéré comme une représentation particulièrement emblématique de ce qu'on appelle la « spirale de Fibonacci ».
  • La ramification des arbres et des systèmes racinaires, le rapport entre les abeilles mâles et femelles dans une ruche, diverses parties du corps des animaux - des microbes aux escargots, des tortues aux baleines, sont tous conformes au nombre d'or.
  • Les aspects de la physiologie humaine - le rapport entre la longueur totale de notre corps et la distance entre notre tête et le bout de nos doigts, par exemple, ou le rapport entre la longueur de nos avant-bras et nos mains, sont tous conçus conformément à Φ.
    La cochlée de l'oreille humaine est une spirale de Fibonacci, tout comme le cordon ombilical. On pense même que nous sommes inconsciemment attirés par les visages dont les proportions hauteur/largeur se rapprochent du nombre d'or.

Dans leur essence même, les mathématiques sont une quête pour découvrir des modèles en toutes choses. Il n'y a pas d'arène meilleure ou plus envahissante dans laquelle rechercher ces modèles que dans le giron de mère nature.

Des micro-organismes aux galaxies, la séquence de Fibonacci se reflète dans un éventail écrasant de physiologie naturelle ainsi que de phénomènes, de l'échelle microscopique à cosmique - et avec raison.

Le nombre d'or ou Φ confère un équilibre ergonomique d'harmonie esthétique et fonctionnelle à tout ce dans quoi il s'exprime. C'est pour cette raison que le nombre d'or est également appelé proportion divine.

Mais la signification de la séquence de Fibonacci s'étend bien au-delà du monde naturel, trouvant son expression dans un large éventail d'activités humaines - à travers les mathématiques, les sciences et les arts.

Lisez nos articles populaires liés au développement de logiciels

Comment implémenter l'abstraction de données en Java ? Qu'est-ce que la classe interne en Java ? Identificateurs Java : définition, syntaxe et exemples
Comprendre l'encapsulation dans OOPS avec des exemples Arguments de ligne de commande en C expliqués Top 10 des fonctionnalités et caractéristiques du cloud computing en 2022
Polymorphisme en Java : concepts, types, caractéristiques et exemples Packages en Java et comment les utiliser ? Tutoriel Git pour les débutants : Apprenez Git à partir de zéro

Génération de la séquence de Fibonacci à l'aide de Python

La séquence de Fibonacci et le nombre d'or font partie intégrante de divers aspects de :

  • Algèbre, géométrie, statistiques et trigonométrie - qui peuvent être appliquées à diverses pratiques économiques et à l'analyse boursière.
  • Biologie, physique et informatique - qui trouve une application dans la biologie synthétique et la génétique, le génie civil et mécanique, l'architecture, le design d'intérieur et bien sûr la programmation informatique.
  • Art et design graphique ainsi que poésie, musique et danse

C'est souvent une étape fondamentale dans la création d'une grande variété d'applications utiles liées aux sujets ci-dessus et au-delà.

La séquence de Fibonacci peut être générée à l'aide d'une grande variété de langages de programmation. Comme indiqué précédemment, Python est l'un des plus puissants et des plus polyvalents - capable d'utiliser et de manipuler les nombres de Fibonacci et la séquence de Fibonacci de plusieurs manières afin de développer certaines des solutions technologiques les plus avancées.

Découvrez le programmeur de certificats avancé d'upGrad dans Blockchain de IIIT Bangalore

Voici quelques-unes des méthodes par lesquelles Python peut être utilisé pour générer la séquence de Fibonacci :

Approche itérative

Dans cette méthode, l'algorithme :

  • Attribue deux variables quelconques pour représenter les deux premiers termes consécutifs dans la séquence. Où 0 représente le premier terme de la suite et 1 représente le second.
  • Définit la plage de termes souhaitée à calculer dans la séquence et la boucle à partir de 0.
  • A chaque itération, l'algorithme :
    • Additionne les deux variables.
    • Attribue ensuite la valeur de la deuxième variable à la première variable
      et la somme des deux variables précédentes à la deuxième variable.
    • Et ainsi de suite…

Le code correspondant s'écrirait comme suit :

def fibo (num) :

un = 0

b = 1

pour je dans xrange(0, 20):

imprimer un

une, b = b, une + b

La sortie correspondante serait les vingt premiers nombres de la suite de Fibonacci :

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89,
144, 233, 377, 610, 987, 1597, 2584, 4181

Approche récursive

Dans cette méthode, l'algorithme dérive :

La valeur de chaque terme successif en additionnant la valeur des deux termes précédents. Cela peut être représenté par le terme n = terme n-1 + terme n-2.

Les deux seules exceptions à cette règle sont lorsque la valeur des termes est 0 et 1, qui renvoient tous deux des valeurs inchangées. Ces exceptions peuvent être représentées par le terme n = terme n.

Le code correspondant s'écrirait comme suit :

def recur_fodo (n):

si n < = 1 :

retour m

autre:

retour (recur_fibo (n-1) + recur_fibo (n-2) )

Ntermes = 20

# vérifier si le nombre de termes est valide

si nerfs <= 0 :

print ("Veuillez entrer un nombre entier positif")

autre:

imprimer ("suite de Fibonacci")

Pour i dans la plage (ntermes) :

Imprimer (recur_fibo i))

La sortie correspondante serait les vingt premiers nombres de la suite de Fibonacci :

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89,
144, 233, 377, 610, 987, 1597, 2584, 4181

Quelques applications autonomes de la séquence de Fibonacci

En plus d'être une étape fondamentale dans le développement de divers modèles et applications complexes, les nombres de Fibonacci, en eux-mêmes, possèdent des caractéristiques uniques qui les rendent inestimables dans l'exécution de certaines tâches :

  • Les nombres de Fibonacci peuvent être utilisés pour analyser le temps d'exécution de calcul de l'algorithme d'Euclide afin d'identifier le plus grand diviseur commun d'une paire aléatoire d'entiers, étant donné qu'une paire de nombres de Fibonacci successifs présente généralement le défi le plus sévère pour cet algorithme.
  • Les nombres de Fibonacci représentent de manière unique une séquence complète, de sorte que chaque entier positif de la série est la somme de deux nombres de Fibonacci, dont chacun ne peut être utilisé qu'une seule fois.
  • Des algorithmes basés sur les nombres de Fibonacci ont aidé au développement de la technique de recherche de Fibonacci, de la structure de données en tas de Fibonacci et des graphes cubiques de Fibonacci utilisés pour interconnecter les systèmes parallèles et distribués.
  • Les nombres de Fibonacci sont utilisés dans le scrum poker - une technique basée sur le consensus et ludique pour estimer les objectifs de développement dans le développement de logiciels.
  • Le retracement des niveaux de Fibonacci est couramment utilisé dans l'analyse technique pour les transactions boursières.

En conclusion

Au cours de cet article, nous avons tenté de piquer votre intérêt pour la séquence de Fibonacci ou le nombre d'or - ses principales caractéristiques et sa récurrence étonnamment fréquente dans le monde naturel - à la fois animé et inanimé.

Nous avons essayé de capturer l'impact et de recréer l'émerveillement que ce phénomène mathématique a créé à travers une gamme très divergente et multidimensionnelle d'activités humaines - les arts et les sciences, l'ingénierie et la technologie, l'anatomie et la génétique, l'économie et la finance... et bien plus encore .

Nous avons tenté de donner vie à la façon dont un langage de programmation extrêmement polyvalent appelé Python peut vous aider à manipuler ces concepts mathématiques au profit de l'humanité de manières étonnamment diverses - à la fois directement et indirectement.

Nous espérons ardemment que cette puissante combinaison de Python et de la séquence de Fibonacci a et continuera de captiver votre imagination, d'enflammer vos esprits, d'alimenter vos aspirations et de vous inspirer vers les plus hauts sommets de réalisation. Bon codage ! Bon rêve !

Chez upGrad, nous comprenons l'importance d'un apprentissage pratique et pratique, en particulier lorsqu'il s'agit de développement de logiciels. Par conséquent, nos cours et nos initiatives de formation sont axés sur l'aspect pratique. L'une de ces initiatives est Full Stack Development Bootcamp qui vous aidera à développer toutes les compétences nécessaires pour exceller dans le développement full-stack.

Veux-tu partager cet article?

Planifiez votre carrière en développement de logiciels dès maintenant !

Postuler pour une maîtrise ès sciences en informatique