📌 L'écriture d'une fonction récursive distingue un ou plusieurs cas récursifs, dans lesquels la fonction s'appelle avec de nouveaux arguments, et un ou plusieurs cas de base, qui terminent les appels successifs.
Cas récursif = continuer ; cas de base = arrêter
La version itérative de la fonction somme initialise total à 0, parcourt les valeurs de a à b inclus avec une boucle for, ajoute chaque valeur à total, puis renvoie total.
La fonction somme reçoit a comme entier et b comme entier supérieur ou égal à a, puis renvoie total comme entier.
Parcourir les entiers de a à b puis accumuler
La version itérative de factorielle initialise fac à 1, parcourt les valeurs de 2 à n inclus, multiplie fac par chaque valeur, puis renvoie fac.
La version itérative de puissance initialise val à 1, multiplie val par x à chaque valeur de k comprise entre 1 et n, puis renvoie val.
★ À maîtriser
Pour l'appel puissance(2, 3), les appels récursifs forment une chaîne puissance(2, 3), puissance(2, 2), puissance(2, 1), puissance(2, 0), puis le cas terminal renvoie 1.
Le nombre d'appels simultanés de fonctions est limité par la limite de récursion de Python.
📌 Dépasser la limite d'appels récursifs provoque une erreur RecursionError: maximum recursion depth exceeded in comparison.
Compléments
📌 La fonction setrecursionlimit du module sys permet de modifier la limite d'appels simultanés, mais un nombre excessif de récursions peut provoquer un plantage par débordement de la pile d'exécution.
Trop d'appels simultanés → dépassement de la pile
★ À maîtriser
Compléments
★ À maîtriser
📌 Le cas de base de solution_hanoi est n égal à 0 : aucun disque n'est déplacé et la procédure ne fait rien.
Compléments
L'appel hanoi(3, 'GAUCHE', 'CENTRE', 'DROITE') entraîne sept affichages de déplacements, dans l'ordre indiqué par la résolution récursive.
L'objectif du chapitre est de savoir écrire une fonction récursive en identifiant ses cas de base et ses cas récursifs, puis de savoir dessiner un arbre d'appels récursifs.
n−1 vers l'intermédiaire → plus grand disque → n−1 vers l'arrivée
Teste tes connaissances sur Fonctions récursives en Python avec 10 questions à choix multiples et corrections détaillées.
1. Parmi les propositions suivantes concernant la fonction somme, la(les)quelle(s) est(sont) exacte(s) ?
2. Les éléments qui structurent une fonction récursive comprennent :
Mémorisez les concepts clés de Fonctions récursives en Python avec 10 flashcards interactives.
Qu'est-ce qu'une fonction récursive ?
Une fonction qui s'appelle elle-même lors de son exécution.
Que distingue l'écriture d'une fonction récursive ?
Des cas récursifs et des cas de base.
Que calcule la fonction somme entre a et b ?
La somme des entiers entre a et b inclus.
Importe ton cours et l'IA génère fiches, QCM et flashcards en 30 secondes.
Générateur de fiches