NSI (terminale) · Chapitre 2 · Exercice d'entraînement
Problème — Les temps de vol de Syracuse
Dictionnaires et tables de hachage · Applications · niveau 3 (difficile)
Énoncé
Problème — Les temps de vol de Syracuse.
On part d'un entier et l'on répète : si est pair, on le remplace par , sinon par . On admet qu'on finit toujours par atteindre pour les entiers étudiés ici. Le temps de vol de est le nombre d'étapes nécessaires pour atteindre (il vaut pour ).
- Calculer à la main le temps de vol de .
- Écrire une fonction récursive
vol(n, memo)qui mémorise dans le dictionnairememoles temps de vol déjà calculés. - En déduire l'entier dont le temps de vol est le plus grand. Comparer le nombre de temps de vol calculés avec et sans mémoïsation.
Un exercice à chercher : son corrigé n'est pas publié. Sur Adloun, le tuteur guide par questions, sans donner la réponse.