hname
Adolfo Foriero, ing., Ph.D.
1
La récursivité
Nous introduisons l’étude de la récursivité. La méthode dans laquelle un problème est résolu en le subdivisant dans des cas plus petits du même problème. Cette approche est reconnue dans les stratégies d’algorithmie comme : diviser pour conquérir ou diviser pour régner !
Adolfo Foriero, ing., Ph.D.
2
Tout processus de récursivité est constitué de deux parties:
1. La plus petite partie ou le cas de base qui est traité sans récursion; et
2. La méthode générale qui réduit un cas particulier à un ou plusieurs cas de plus petite taille. Cette méthode progressant vers la réduction du problème jusqu’au cas de base (1).
Adolfo Foriero, ing., Ph.D.
3
Les fonctions récursives
Une fonction qui fait appel à elle-même est une fonction dite récursive.
Nous développerons dans la suite une fonction récursive MATLAB pour le factoriel.
L’exemple classique de l’expression récursive est le calcul du factoriel de n.
Nous pouvons avoir deux points de vue différents pour le calcul de 10 !
10 ! =10*9*8*7*6*5*4*3*2*1
10 ! =10*9 !
La seconde représentation est la version récursive, qui peut s’exprimer de la manière suivante n ! = n *(n-1)!
Cependant cette dernière définition ne serait complète sans réaliser que 0! = 1 (le cas base), sinon le processus serait infini.
Adolfo Foriero, ing., Ph.D.
4
Pour calculer le factoriel, nous avons besoin d’une définition plus précise comme celle-ci :
1
n!=
n n -1!
si n = 0 si n 0
Prenons un exemple, le calcul de 5!
5! 5 4!
5! 5 (4 3!)
5! 5 (4 (3 2!))
5! 5 (4 (3 (2 1!)))
5! 5 (4 (3 (2 (1 0!))))
Cet exemple démontre essentiellement comment une expression récursive est calculée.
5! 5 (4 (3 (2 (11))))
5! 5 (4 (3 (2 1)))
5! 5 (4 (3 2))
5! 5 (4 6)
5! 5 24
5! 120.
Adolfo Foriero, ing., Ph.D.
5
Trace