Vidéo: How To Prevent Gout Recurrence 2024
La récursivité est un gros mot effrayant que vous entendez souvent au sujet de la programmation, en particulier de la programmation frustrante qu'ils enseignent à l'université. Bien que ce soit un concept facile à décrire, c'est vraiment un esprit de souffrance quand il s'agit de comprendre comment la récursivité fonctionne. La plupart des gens l'acceptent et passent à autre chose. Pas ici!
La récursivité est essentiellement le processus d'une fonction qui s'appelle elle-même. Par exemple:
void funct (int x) {funct (x);}
Dans ce morceau de code, vous voyez un exemple terrible d'une fonction récursive, mais il sert à des fins illustratives ici: La fonct () La fonction s'appelle elle-même. C'est la récursivité. Maintenant, ce qui se passe dans cet exemple est fondamentalement une boucle sans fin, et, grâce à un truc technique ou autre, appelé la pile pointe r , l'ordinateur finit par se bloquer. Mais c'est juste une illustration.
Pour que la récursivité fonctionne, la fonction doit avoir une condition de renflouement, comme une boucle. Par conséquent, la valeur transmise à la fonction récursive ou sa valeur de retour doit être testée. Voici un meilleur exemple de fonction récursive:
void recursion (int x) {if (x == 0) return; else {puts ("Boop!"); récursivité (- x);}}
La fonction recursion () accepte la valeur x . Si x est égal à zéro, la fonction baille. Sinon, la fonction est appelée à nouveau, mais la valeur x est réduite. L'opérateur de préfixe décrément est utilisé de sorte que la valeur de x est réduite avant l'appel est effectué.
L'exemple récursion () recrache essentiellement le texte Boop! un nombre de fois donné. Donc, si recursion () est appelée avec la valeur 10, vous voyez ce texte affiché dix fois.
La partie insensée de la récursivité est que la fonction continue de s'appeler elle-même, s'enveloppant de plus en plus serrée, comme si elle était en spirale. Dans l'exemple précédent, la condition x == 1 finit par dérouler ce gâchis sinueux, en reculant de plus en plus jusqu'à ce que la fonction soit terminée.
Le code suivant montre un programme complet utilisant la fonction sample recursion ().
#include void recursion (int x); int main () {récursion (10); return (0);} void récursion (int x) {if (x == 0) return; else {puts ("Boop!"); récursivité (- x);}}
Une démonstration commune de la récursivité est une fonction factorielle. Le factoriel est le résultat de la multiplication d'une valeur par chacun de ses entiers positifs. Par exemple:
4! = 4 × 3 × 2 × 1
Le résultat de cette factorielle est 24. L'ordinateur peut aussi faire ce calcul, soit en implémentant une boucle soit en créant une fonction récursive.Voici une telle fonction:
int factorial (int x) {if (x == 1) return (x); else return (x * factorial (x-1));}
Comme pour les autres fonctions récursives, la fonction factorial () contient une condition de sortie: x == 1. Sinon, la fonction est appelée à nouveau avec une valeur inférieure à la valeur actuelle x . Mais toute l'action se déroule avec les valeurs de retour.