Dans un algorithme répétitif ou itératif, la séquence d’actions peut être répétée identique à elle-même un certain nombre de fois, ou modifiée d'un façon ou autre.
Mais un algorithme récurrent, c'est un algorithme répétitif particulier dans lequel la séquence sera reprise modifiée, un certain nombre de fois, la modification se faisant suivant une règle précise de façon que le résultat de chaque itération dépend des résultat des résultats des p itérations précédentes, on dit qu'on algorithme récurrent d'ordre P.
ainsi un calcul de somme de n valeurs saisies successivement ou rangé dans un tableau sera un calcul itératif récurrent d'ordre 1 (s:=s+v ou s:= s+ T[c] )
le calcule des suite est un exemple concret des algorithme récurrent par exemple la suite de fibonachi (ou Fibonacci) (Fn = Fn-1+Fn-2 est à la base d'un algorithme récurrent d'ordre 2.
prenons le cas de triangle de Pascal qui nous renseigne sur les différent coefficient du produit (a+b)a la puissance n( (a+b)^n.
soit de la forme suivante :
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 ............
on peut vérifier que les valeurs de chaque ligne l (degré l en commençant par 0 et en considérant qu'on a un matrice M) sont calculés à partir de ligne suivante avec la formule suivante : M[l,c]=M[l-1,c]+M[l-1,c-1].
tout en commençant par la première ligne qui a un seul coefficient égal à 1, et à chaque ligne on commence par affecter la valeur aux deux case(première et dernière) d'indice (l,1) et (l,l)
ceci est répéter au nombre égal à la puissance n.
ainsi on a si_dessous l'implémentation d'un procédure qui permet de déterminer ces coefficients (en TURBO PASCAL)
Procedure TRPASCAL(var M:matrice;n:integer);
(" matrice doit être déclaré comme nouveau type*)
(* type matrice=array[0..99;1..100] of integer*)var c,l:iinteger;
M[0,1]:=1;
For l:= 1 to n do (* l compteur pour les lignes*)
Begin
M[l,1];M[l,l];
for c:= 2 to (l-1) do
M[l,c] := M[l-1,c] + M[l-1,c-1]
end;
En finj'attends que vous commentez ce que je viens d'écrire et me renseigner sure l'ordre de recurrence d'un tel algorithme qui calcule les différentes valeurs du triangle de pascal
Y a t il une autre solution plus asticieuse ?