A propos de récursivité : Différence entre versions

De Sciencinfolycee
Aller à : navigation, rechercher
m
m
Ligne 4 : Ligne 4 :
 
:<tt> u[n] = u[n-1] + a , u[0] = 0</tt>
 
:<tt> u[n] = u[n-1] + a , u[0] = 0</tt>
 
se définit ainsi et oeut se calculer opar une fonction récursive:
 
se définit ainsi et oeut se calculer opar une fonction récursive:
: <tt> u(n) { si n > 0 renvoyer u(n - 1) + a sinon renvoyer 0 }
+
: <tt> u(n) { si n > 0 renvoyer u(n - 1) + a sinon renvoyer 0 }</tt>
 
ou, dans ce cas simple, par une fonction itérative:
 
ou, dans ce cas simple, par une fonction itérative:
: <tt> u(n) { r = 0; pour i de 1 à n faire r = r + a; renvoyer r; }
+
: <tt> u(n) { r = 0; pour i de 1 à n faire r = r + a; renvoyer r; }</tt>
 
et même une formule explicite.
 
et même une formule explicite.
  

Version du 9 février 2012 à 17:36

A propos de récursivité

Un algorithme qui contient se définit en faisant un appel à lui-même est dite récursif. Par exemple une suite récurrente:

u[n] = u[n-1] + a , u[0] = 0

se définit ainsi et oeut se calculer opar une fonction récursive:

u(n) { si n > 0 renvoyer u(n - 1) + a sinon renvoyer 0 }

ou, dans ce cas simple, par une fonction itérative:

u(n) { r = 0; pour i de 1 à n faire r = r + a; renvoyer r; }

et même une formule explicite.

Toutes les fonctions itératives peuvent s'exprimer de manière récursive, mais l'inverse n'est pas vrai. C'est un domaine très théorique, et au niveau de l'enseignement secondaire, il est sûrement important de :

  • faire prendre