NSI (première) · Chapitre 8 · Exercice de TD
Que renvoie dichotomie sur un tableau vide
Dichotomie, voisins et gloutons · La recherche dichotomique · niveau 2
Énoncé
Que renvoie dichotomie sur un tableau vide ? Vérifier que la fonction ne plante pas, et dire pourquoi — en regardant les valeurs initiales de gauche et droite.
Corrigé
assert dichotomie([], 5) == -1
_, trace = dichotomie_tracee([], 5)
assert trace == [] # la boucle n'est JAMAIS entree
Elle renvoie , et c'est juste. Sur un tableau vide, gauche = 0 et droite = len(t) - 1 = -1 : la condition gauche <= droite est fausse d'emblée, le corps n'est jamais exécuté, et la fonction tombe directement sur return -1. Aucun accès à t[milieu] n'a lieu — c'est pourquoi rien ne plante.
Ce que cela dit de l'invariant. L'invariant est « si figure dans , son indice est dans ». Sur un tableau vide, cet intervalle est vide dès le départ, et l'invariant est vrai trivialement — la conclusion « n'y figure pas » suit immédiatement. Un raisonnement correct sur les cas limites ne demande aucun cas particulier dans le code : c'est le signe qu'il est bien construit.
Et le tableau à un élément.
assert dichotomie([5], 5) == 0
assert dichotomie([5], 3) == -1
Ces deux cas-là sont ceux que, d'après Knuth, les premières versions publiées manquaient.
100 % gratuit
Essaie le suivant avec le tuteur
- L'exercice suivant avec le tuteur, sans compte : il guide pas à pas, sans donner la réponse
- 16 autres exercices corrigés dans ce chapitre, et 20 à chercher avec le tuteur
- Le podcast et la vidéo du chapitre et la correction filmée du TD : 2 minutes sans compte
Sans compte : le cours, 2 minutes de podcast et de vidéo et un exercice avec le tuteur. Pour tout le reste : inscription gratuite en 30 secondes, sans carte bancaire.