Documente Academic
Documente Profesional
Documente Cultură
Rcursivit
1.1 Dnition
La rcursivit est un concept fondamental cl dans l'informatique, c'est
une mthode de rsolution de problme qui consiste rduire un problme
en sous-problmes de plus en plus petits jusqu' ce qu'on arrive un petit
problme assez simple qu'il peut tre rsolu trivialement. La rcursivit permet d'crire des solutions lgantes aux problmes qui pourraient autrement
tre trs dicile rsoudre.
En d'autres terme Un algorithme est dit rcursif s'il s'appelle lui-mme,
LISP et Algol 60 ont t les premiers langages de programmation qui ont
introduit la rcursivit et maintenant tous les langages de programmation
modernes proposent une implmentation de la rcursivit.
La rcursivit c'est l'application de l'adage Diviser pour rgner
l'algorithmique : pour rsoudre un problme d'une taille donne, on scinde
ce problme en plusieurs sous-problmes plus petits, on recommence avec
chacun de ces sous-problmes jusqu' ce que tous les petits sous-...-sousproblmes soient facilement rsolubles.
En gnral, les programmes informatiques rcursives ncessitent plus de
mmoire et de calcul par rapport aux algorithmes itratifs, mais ils sont plus
simples et dans de nombreux cas un moyen naturel de rchir au problme.
f actoriel(6) = (1 (2 (3 (4 (5 6))))
f actoriel 1
else
f actoriel n f actoriel(n 1)
end if
end function
nombre mme et le factoriel du nombre moins un. Pour le dire sous une forme
fonctionnelle : F actoriel(n) = n f actoriel(n 1) Le code de la fonction
factoriel deviendra comme suit :
Il y a quelques ides cls dans ce code qu'on peut voir. Tout d'abord,
sur la ligne 2, on vrie si le nombre est gale un. Cette vrication est
cruciale et essentielle pour sortir de la fonction. Le factoriel de 1 est trivial ;
la fonction retourne 1. Deuximement, sur la ligne 5 la fonction fonction
factoriel s'appelle elle mme ! pour cette raison on appel la fonction factorielle
rcursive. Une fonction rcursive est une fonction qui s'appelle elle mme. La
gure 1.1 montre la srie d'appels rcursifs qui sont ncessaires pour calculer
le factoriel. Cette srie d'appels est vue comme une srie de simplications.
Chaque fois qu'on fait un appel rcursif on rsout un problme plus petit,
jusqu' ce qu'on atteigne le point o le problme ne peut pas devenir plus
petit.
Lorsqu'on atteint le point o le problme est aussi simple que cela peut
l'tre, on commence reconstituer les solutions de chacun des petits problmes jusqu' ce que le problme initial est rsolu. La gure 1.1 montre les
produits qui sont eectues que la fonction factoriel travaille son chemin vers
l'arrire dans la srie d'appels. Lorsque factoriel revient au plus haut, on a
la solution l'ensemble du problme.
factoriel(4)
factoriel (3)
4x
factoriel (2)
3x
factoriel (1)
2x
factoriel (0)
1x
24
factoriel(4)
4x 6
factoriel (3)
3x2
factoriel (2)
factoriel (1)
factoriel (0)
2x1
1x1
Exercices
Suite de Fibonacci
La suite de Fibonacci est une suite d'entiers (un )n > 0 dnit par :
u0 = 0
u1 = 1