La suite de fibonacci
TD-2 ApplicationsLa suite de FIBONACCI
On rappelle la définition par récurrence de la suite de FI-
BONACCI :
𝑢0 = 𝑢1 = 1, ∀𝑛 ∈ ℕ ∗, 𝑢𝑛+1 = 𝑢𝑛 + 𝑢𝑛−1.
On désire écrire une fonction Fibonacci1 avec comme ar- gument un entier n et qui retourne la valeur de 𝑢𝑛.Méthode récursive
On écrit le code suivant :
Script PYTHON
1 def fibonacci1(n):
2 if (n==0) or (n==1): …afficher plus de contenu…
Ce qui est très mauvais.
Pourquoi l’ordinateur prend-il autant de temps?Méthode récursive
Analysons le calcul de fibonacci1(5) que l’on notera dans le graphique suivant 𝐹(5) :
𝐹(5)
𝐹(4) 𝐹(3)
𝐹(3) 𝐹(2) 𝐹(2) 𝐹(1)
𝐹(2) 𝐹(1) 𝐹(1) 𝐹(0) 𝐹(1) 𝐹(0)
𝐹(1) 𝐹(0)Méthode …afficher plus de contenu…
La solution 𝐹(𝑛) du problème initial est obtenue à partir de 𝐹(𝑛 − 1) et 𝐹(𝑛 − 2) (ici l’addition).Définitions
Définition 2 (Chevauchement de sous-problèmes)
En informatique , on dit qu’un problème a des sous-problèmes qui se chevauchent si le problème peut être décomposé en sous-problè- mes qui sont réutilisés plusieurs fois ou si un algorithme récursif pour le problème initial résout le même sous-problème plusieurs fois.Exemple 2:
Le calcul du 𝑛ème terme de la suite de FIBONACCI en est un parfait exemple. On a vu que le calcul de 𝐹(3) et de 𝐹(2) sont plusieurs fois résolus dans l’algorithme récursif.
Nous sommes dans un cas de chevauchement de sous-problèmes.Méthode avec