R´ecursivit´e
Master 2 I2L, 2019/2020
Exercice 1 : Algorithmes r´ ecursifs ?
Questions :
a- Est-ce que les algorithmes ci-dessous sont des algorithmes r´ecursifs ?
b- Est-ce qu’ils se terminent ? Modifier les algorithmes de mani`ere `a ce qu’ils se terminent.
c- Que calculent chacun des algorithmes ? Algorithme log(x, n : entier) : entier d´ebut
six≤0 alors retournern sinon
retournerlog(x/2, n+1) fin si
fin
Algorithme puissance(x, n : entier) : entier d´ebut
sin≤0 alors retourner1 sinon
retournerx * puis(x, n-1) fin si
fin
Algorithme somme(n : entier) : entier d´ebut
sin= 0alors retourner0 sinon
retourner|n|+somme(n+1) fin si
fin
Exercice 2 : Suite r´ ecurrente
Ecrire une fonction r´ecursive qui calcule lenieme terme de la suiteud´efinie par : 1
u0 = 0.8
un+1 = 0.6un(un−1)
Exercice 3 : Fibonacci
a- Ecrire une fonction r´ecursive qui calcule lenemeterme de la suite de Fibonacci :
u0 = 1 u1 = 1
un+2 = un+un+1,∀n∈IN b - Repr´esenter sous forme graphique le calcul du termeu5. c - Calculer la complexit´e temporelle de votre algorithme.
Exercice 4 : Ackermann
a- Ecrire une fonction r´ecursive qui calculeA(m, n) d´efini comme ceci :
A(0, n) = n+ 1
A(m,0) = A(m−1,1), pourm >0
A(m, n) = A(m−1, A(m, n−1)), pour m >0 etn >0 b - Repr´esenter sous forme graphique le calcul du termeA(2,3).
2