A propos de récursivité

De Sciencinfolycee
Aller à : navigation, rechercher

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 peut 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 (c'est à dire avec uniquement une boucle):

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

et même une formule explicite.

Certaines structures de données (par exemple une liste) se définissent aussi utilement de manière récrusive.

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 conscience de l'existence de la récursivité
  • aider à exprimer un problème concret de manière récursive quand celà est plus aisé
  • montrer les problèmes posés lors d'erreur et de bugs

sans aller trop loin.

La définition de wikipedia donne les idées à comprendre et un exemple . . issu de la littérature.

La_récursivité_en_programmation Un enseignant développe en trois minutes cette notion pour donner l'idée clé.