Que savez-vous de la récursivité ?
Les éléments d'un code récursif
Dans un code récursif C, il est nécessaire d'intégrer :
Votre choixChoix attenduRéponse
La démarche de résolution à l'aide de la récursivité repose sur :
- L'existence de cas triviaux dont les résultats sont connus,
- Une possibilité de décomposition d'un problème sur un domaine de données, en sous-problèmes sur des sous-domaines réduits,
- Une assurance que les décompositions successives aboutissent à la résolution d'un ensemble de cas de base. C'est une application du paradigme « diviser pour régner ».
La récursivité croisée
Si 2 fonctions f1 et f2 sont à récursivité croisée :
Votre choixChoix attenduRéponse
La récursivité terminale
Parmi les fonctions C suivantes, cochez celles qui sont récursives terminales.
Votre choixChoix attenduRéponse
Un code récursif terminal est un code dont l'appel récursif constitue la dernière action avant le retour. La mise en forme de l'écriture du code n'a aucune incidence sur cette propriété.
La récursivité multiple
Une fonction à récursivité multiple présente nécessairement les caractéristiques suivantes :
Votre choixChoix attenduRéponse
Transmission de paramètres
Une fonction récursive travaille exclusivement sur des paramètres transmis par valeur.
Votre choixChoix attenduRéponse
Élémentaire, mon cher W. !
Voici la fonction de Morris :
int morris (int m, int n) {
if (0 ==m) return(1) ;
else return( morris(m - 1, morris(m, n))) ;
} ;
Cette fonction n'est pas correcte. Pourquoi ?