1- Qu’est-ce qu’un algorithme récurrent ?
Un algorithmerécurrent
Exemple :
Soit la suite de Fibonacci suivante :
U1 = 1 U2 = 1
Un = Un-1+Un-2
U3=U2+U1 donc pour calculer U3 on a besoin de deux termes précédents (U2 et U1), donc il s’agit d’un traitement récurrent d’ordre 2.
Est ce qu’il y a d’autres exemples de traitement récurrents ?
Oui, voici quelques exemples :
Calcul de somme, calcul de factoriel, triangle de Pascal, Suite de Thue-Morse, Nombre d’or, ...
2- Quelques exemples d’algorithmes récurrents ? 2.1 Calcul de somme
Exercice 1 : (
calcul de somme)
1- On vous demande de donner l’algorithme d’une fonction qui calcule la somme des éléments d’une matrice carrée d’ordre N (sachant que la matrice est déjà remplie par N*N réels).
2- Quel est l’ordre de récurrence de ce traitement ? justifier votre réponse.
Réponse :
...
Objectifs :
1- Découvrir qu’est-ce qu’un algorithme récurrent.
2- Voir quelques exemples d’algorithmes récurrents.
https://elbahi.jimdofree.com/
Disponible en ligne sur :
Un ensemble fini d’instructions qui utilise un ... pour donner un résultat final en se basant un ou plusieurs résultats ...
Nombre de lignes = Nombre de colonnes
2.2 Algorithme récurrent sur les chaînes Exercice 2 : (
Suite de Thue-Morse)
La Suite de Thue-morse est une suite binaire définie par : U0 = 0 ou U0 = 1 et par la récurrence suivante : pour passer de Un à Un+1 on remplace tous les 0 de Un par 01 et tous les 1 par 10.
Exemple :
U0=0 (ou U0=1) U1=01
U2=01 10 U3=01 10 10 01 Travail A Faire :
1. Sachant que U0=0, Calculer le terme U4 de la suite Thue-morse : ...
2. Quelle est l’ordre de récurrence de cette suite ? ...
3. Faire le programme qui saisit un chiffre binaire (qui peut être 0 ou 1), puis calcul et affiche les N premiers termes de la suite Thue-morse (avec N > 2).
Formée uniquement par des 0 et des 1
2.3 Le triangle de Pascal
Le triangle de pascal est la matrice des coefficients (coefficients du binôme) qui sont utilisées pour développer des expressions comme (a+b)0 , (a+b)1 , … , (a+b)n
Exemple :
(a+b)0 = 1 les coefficients : 1 (a+b)1= 1*a + 1*b les coefficients : 1,1 (a+b)2= 1*a2 + 2*a*b + 1*b2 les coefficients : 1,2,1 (a+b)3= 1*a3 + 3*a2*b + 3*a*b2 +1*b3 les coefficients : 1,3,3,1 (a+b)4= 1*a4 + 4*a3*b + 6*a2*b2 + 4*a*b3 +1*b4 les coefficients : 1,4,6,4,1 Examinons le triangle de Pascal suivant :
On constate que le calcul de MAT[5,4] fait référence à deux résultats précédents :
... donc il s’agit d’un traitement récurrent d’ordre ...
De façon générale : le triangle de pascal s’obtient de la façon suivante :
La cellule [1,1] doit contenir la valeur 1.
le premier élément et le dernier élément (de chaque ligne) sont égaux à 1
les autres éléments sont déterminés en appliquant la formule suivante :
MAT[i,j] = MAT[i-1,j] + MAT[i-1,j-1] (avec i le numéro de la ligne et j le numéro de la colonne)
Exercice 3 : (
le triangle de Pascal)
On se propose d’afficher les N premières lignes du triangle de pascal avec (avec 3 ≤ N<20). On vous demande de remplir et d’afficher les N premières lignes du triangle de pascal comme le montre l’exemple suivant :
2.4 La suite de Fibonacci
Léonard de Pise, connu sous le nom de Fibonacci, étudia la reproduction des lapins (du point de vue numérique). Il a remarqué qu’un couple de jeunes lapins met une saison pour devenir adulte, attend une autre saison puis met au monde un couple de jeunes lapins à chaque saison suivante et il a conclu que la reproduction des lapins peut être représentée par la suite suivante :
U
0= 1 U
1= 1
U
n= U
n-1+U
n-2Exercice 4 : (
suite de Fibonacci)
1- Question : quelle est l’ordre de récurrence de la suite de Fibonacci ? , justifier
Réponse : ...
2- Donner les valeurs correspondantes aux termes suivants :
U
0U
1U
2U
51 1 2 8
3- Pour un entier N donné, donner l’algorithme de la fonction qui calcule le Nième terme de la suite de Fibonacci :
a- Par un traitement itératif utilisant un tableau b- Par un traitement itératif n’utilisant pas un tableau
2.5 Le nombre d’or
Exercice 5 : (
découvrir la valeur du Nombre d’or)
Compléter le tableau suivant :
Exercice 6 : (
Nombre d’or)
Soient deux suites U et V définies comme suit : U1 = 1
U2 = 2
Un = Un-1 + Un-2 pour n ≥3
et
Vn = Un/Un-1 pour tout n≥2.
NB :
La suite Vn tend vers une limite appelée nombre d’or.
On suppose que le nième terme de la suite V est égal à Vn.
Vn est la valeur approchée du nombre d’or avec une précision epsilon dès que |Vn – Vn-1|< epsilon.
TAF :
- Donner le programme pascal nommé Nombre_or, qui cherche Vn à 10-4 prés et son rang.