Un avant-goût de la récursivité

Recursion est un grand mot effrayant que vous entendez souvent parler de la programmation, en particulier le type frustrant de la programmation qu'ils enseignent à l'université. Bien qu'il soit un concept facile à décrire, il est vraiment un esprit d'alerte quand il vient à comprendre comment fonctionne la récursivité. La plupart des gens tout simplement accepter et aller sur. Pas ici!

Recursion est fondamentalement le processus d'une fonction se fait appeler. Par example:

fonct (int x) {fonct (x) -}

Dans ce morceau de code, vous voyez un exemple terrible d'une fonction récursive, mais il sert des fins d'illustration ici: Le fonct () fonction elle-même appelle. Voilà la récursivité. Maintenant, ce qui se passe dans cet exemple est essentiellement une boucle sans fin, et, grâce à un autre quelque chose ou technique, appelée pile pointer, l'ordinateur se bloque finalement. Mais il est juste une illustration.

Pour la récursivité pour travailler, la fonction doit avoir un état de plan de sauvetage, tout comme une boucle. Par conséquent, soit la valeur passée à la fonction récursive ou sa valeur de retour doit être testé. Voici un meilleur exemple d'une fonction récursive:




récursivité (int x) {if (x == 0) return-else {puts ("! Boop") - la récursivité (- x) -}}

La récursivité () fonction accepte la valeur X. Si X est égal à zéro, les anses de fonction. Sinon, la fonction est appelée de nouveau, mais la valeur de X est réduite. L'opérateur de préfixe de décrément est utilisé de telle sorte que la valeur de X est réduite avant l'appel est effectué.

L'échantillon récursivité () fonction crache essentiellement sur le texte Boop! un nombre donné de fois. Alors si récursivité () est appelé avec la valeur 10, vous voyez que le texte affiché dix fois.

La partie folle à propos de la récursivité est que la fonction continue qui se fait appeler, emballage lui-même plus en plus serré, comme si elle est dans une spirale. Dans l'exemple précédent, la condition x == 1 se déroule finalement ce désordre sinueux, plus tirant en arrière jusqu'à ce que la fonction est fait.

Le code suivant montre un programme complet en utilisant l'échantillon récursivité () fonction.

#include vide récursivité (int x) -int main () {récurrence (10) -retour (0) -} récursivité (int x) {if (x == 0) return-else {puts ("! Boop") -recursion (- x) -}}

Une manifestation commune de la récursivité est une fonction factorielle. La factorielle est le résultat de la multiplication par une valeur de chacun de ses nombres entiers positifs. Par example:

4! = 4 x 3 x 2 x 1

Le résultat de cette factorielle est de 24. L'ordinateur peut également effectuer ce calcul, soit par la mise en oeuvre d'une boucle ou création d'une fonction récursive. Voici une telle fonction:

int factorielle (int x) {if (x == 1) retour (x) -elsereturn (x * factorielle (x-1)) -}

Comme pour les autres fonctions récursives, la factorielle () fonction contient une condition de sortie: x == 1. Sinon, la fonction est appelée une fois avec moins de la valeur courante de X. Mais toute l'action se déroule avec les valeurs de retour.


» » » » Un avant-goût de la récursivité