Leonardo Fibonacci est un mathématicien italien qui a très tôt pris conscience que les chiffres arabes et le système décimal permettaient de manipuler les nombres plus aisément et plus rapidement que le système des chiffres romains[1].
Ses travaux sur l'arithmétique et leurs applications commerciales sont encore utilisés, mais ses contemporains n'ont pas saisi la portée de ces changements, diabolisant même l'apparition de ce nouveau chiffre zéro qui représentait le vide.
La suite d'entiers de Fibonacci est très souvent utilisée en informatique pour comprendre certains principes algorithmiques, comme la récursivité. Le problème posé par Fibonacci concerne la croissance d'une population de lapins :
Un homme met un couple de lapins dans un lieu isolé de tous les côté par un mur. Combien de couples obtient-on en un an si chaque couple engendre tous les mois un nouveau couple à compter du troisième mois de son existence ?
Cependant, certaines distances sont prises par rapport à la réalité :
Nous pouvons en déduire pour notre algorithme que :
| Mois | Couples de lapereaux | Couples de lapins | Total couples | Informations |
| 0 | 0 | 0 | 0 | Au moment zéro, nous n'avons pas encore de couple. Le compte commence après que nous ayons introduit notre premier couple. |
| 1 | 1 | 0 | 1 | Le premier mois, nous avons 1 couple de lapereaux. |
| 2 | 0 | 1 | 1 | Le second mois, notre couple de lapereaux devient pubère. Ils passent du bon temps, et Mme est enceinte. |
| 3 | 1 | 1 | 2 | Le troisième mois, Mme lapin accouche d'un couple de lapereaux après1 mois de gestation. Et ils reprennent leurs galipettes. |
| 4 | 1 | 2 | 3 | Notre premier couple acouche encore d'un couple de lapereaux, et leur première portée devient adulte. |
| 5 | 2 | 3 | 5 | Le premier couple et sa première portée ont chacun un couple, et la seconde portée du premier couple devient adulte. |
| 6 | 3 | 5 | 8 | Bon, comme à ce stade la famille devient un peu compliquée, le schéma animé plus bas est plus explicite... |
| 7 | 5 | 8 | 13 | |
| 8 | 8 | 13 | 21 | Et ainsi de suite... |
Si nous consultons le rapport entre les mois, les nombres de couples de lapereaux, de couples de lapins pubères et le total de la population, nous pouvons en déduire qu'au moment m la population est égale à la population du mois prédcédent(m - 1) plus la population deux mois auparavant(m - 2). Les seules exceptions sont les deux premières lignes de notre tableau, car nous devons attendre de placer un couple dans notre laboratoire, que ce couple soit pubère, et le temps de la gestation.
public class Fibonacci { public static int fibonacci(int n) { if (n < 2) return (n); return (fibonacci(n - 1) + fibonacci(n - 2)); } }
Dans cette implémentation, nous pouvons remarquer deux appels récursifs[2], ce qui donne un ordre de grandeur de temps T(n) ≤
(2n)
Nous pouvons optimiser ce code par l'application des principes de la programmation dynamique, comme nous l'avons vu lors d'exemple de la mémoïsation appliquée à la suite de Fibonacci.
[3]
(define fibo (lambda (x) (if (< x 2) x (+ (fibo (- x 1)) (fibo (- x 2))))))
Vous pouvez modifier vos préférences dans votre profil pour ne plus afficher les interactions avec les réseaux sociaux sur ces pages.
19 mots clés dont 0 définis manuellement (plus d'information...).
Avertissement
Cette page ne possède pas encore de mots clés manuels, ceci est donc un exemple automatique (les niveaux de pertinence sont fictifs, mais les liens sont valables). Pour tester le nuage avec une page qui contient des mots définis manuellement, vous pouvez cliquer ici.Vous pouvez modifier vos préférences dans votre profil pour ne plus afficher le nuage de mots clés.
Suite de Fibonacci Exemple d'itération en C
Suite de Fibonacci Exemple de récursion en C
Suite de Fibonacci Exemple d'itération en C++
Suite de Fibonacci Exemple de récursion en C++
Suite de Fibonacci Exemple d'itération en C#
Suite de Fibonacci Exemple de récursion en C#
Suite de Fibonacci Exemple de récursion en Pascal
Suite de Fibonacci Exemple de méoïsation en Pascal
Suite de Fibonacci Exemple d'itération en ADA
Suite de Fibonacci Exemple de récursion en ADA
Suite de Fibonacci Exemple d'itération en PHP
Suite de Fibonacci Exemple de récursion en PHP
Suite de Fibonacci Exemple de récursion en Java
Suite de Fibonacci Exemple d'itération en Ruby
Suite de Fibonacci Exemple de récursion en Ruby
Suite de Fibonacci
Suite de Fibonacci
Suite de Fibonacci Exemple d'itération en ASP
Suite de Fibonacci Exemple de récursion en ASP
Suite de Fibonacci Exemple de récursion en JavaScript
Suite de Fibonacci Exemple de récursion en Lisp
Suite de Fibonacci Exemple d'itération en Perl
Suite de Fibonacci Exemple d'itération en Perl avec bigint
Suite de Fibonacci Exemple de récursion en Perl
Suite de Fibonacci Exemple de récursion en Python
Suite de Fibonacci
Suite de Fibonacci Exemple d'itération en Eiffel
Suite de Fibonacci Exemple de récursion en Eiffel
Suite de Fibonacci Exemple d'itération en Scheme
Suite de Fibonacci Exemple de récursion en Scheme
Suite de Fibonacci Exemple de récursion en Ocaml
Suite de Fibonacci
Recherche (afficher)
Utilisateur (masquer)
Navigation (masquer)
Apparence (afficher)
Stats (afficher)
Citation (masquer)