informatique (tronc commun des prépas scientifiques) · Chapitre 6 · Exercice de TD
Pile bornée — estimer avant d'exécuter
Fonctions récursives · niveau 3 (difficile)
Énoncé
Pour les fonctions somme_jusqua(n), dichotomie_rec, puissance(x, n), fib(n) (naïve), sous_listes(t) et koch(L, n), indiquer la profondeur maximale de pile d'appels et identifier les risques de débordement en Python (limite de 1000).
Corrigé
somme_jusqua(n): profondeur . Risque de crash élevé dès . Parade : passage à une boucle itérative.dichotomie_rec: profondeur . Aucun risque de débordement ( appels pour éléments).puissance(x, n): profondeur . Aucun risque.fib(n): profondeur en théorie, mais l'explosion du nombre d'appels () bloque le temps d'exécution bien avant d'atteindre la limite de pile. Parade : écriture itérative.sous_listes(t): profondeur , mais la mémoire requise pour stocker les listes sature le système dès , rendant la profondeur de pile secondaire.koch(L, n): profondeur . Aucun danger en pratique car le nombre de segments dessinés () limite à des valeurs très faibles (souvent ).
Exercices semblables
- Le tracé de Sierpinski corrigé
- Les sous-listes d'une somme donnée corrigé
- Convertir une récursion en boucle corrigé
- Les tours de Hanoï corrigé
- Générer dans l'ordre du code de Gray corrigé