La recherche dichotomique : comment l'expliquer à un enfant

La recherche dichotomique avec le jeu du nombre à deviner : pourquoi 7 questions suffisent pour 100 nombres, à quoi ressemble l'algorithme pas à pas et quelles erreurs font les enfants.

Mis à jour:

L'algorigramme d'un algorithme dans Looponi pendant l'exécution, avec à côté les valeurs actuelles des variables

La recherche dichotomique est l'un des premiers algorithmes où l'enfant voit qu'une méthode astucieuse bat la patience. Le plus simple est de commencer par un jeu.

Le jeu : devine le nombre

Pensez à un nombre de 1 à 100. L'enfant devine, et vous répondez seulement « trop petit », « trop grand » ou « trouvé ».

Au début, les enfants tirent au hasard ou demandent dans l'ordre : 1, 2, 3… Demandez alors par quel nombre il vaut mieux commencer pour éliminer à coup sûr le plus de nombres possible. La réponse, c'est le milieu : 50.

Pourquoi le milieu

Après la question sur 50, il reste la moitié des nombres, quelle que soit la réponse. Après la question suivante, un quart. L'intervalle diminue ainsi : 100, 50, 25, 13, 7, 4, 2, 1. Cela fait sept questions. Pour mille nombres, dix suffisent, et pour un million, vingt.

En demandant dans l'ordre, il faudrait dans le pire des cas cent questions.

L'algorithme pas à pas

  1. Retiens les deux bouts de l'intervalle : gauche et droite.
  2. Calcule le milieu.
  3. Si le milieu est le nombre cherché, c'est fini.
  4. S'il est trop petit, déplace gauche juste après le milieu. S'il est trop grand, déplace droite juste avant le milieu.
  5. Retourne à l'étape 2.

C'est une boucle avec une décision à l'intérieur et deux variables qui se rapprochent l'une de l'autre.

À quoi ça sert

Il y a une seule condition : les données doivent être triées.

Les erreurs fréquentes

Dans Looponi

La recherche dichotomique est l'un des algorithmes du parcours « Bâtisseurs » (12–15 ans). L'élève la construit sous forme d'algorigramme, parie sur le nombre de tours que fera la boucle et regarde les bouts de l'intervalle se rapprocher à chaque étape.

Questions fréquentes

Qu'est-ce que la recherche dichotomique ?

C'est une façon de chercher dans des données triées, où chaque question élimine la moitié des possibilités. On regarde le milieu, puis on va à gauche ou à droite.

Combien de questions faut-il pour deviner un nombre de 1 à 100 ?

7 au maximum. Chaque question réduit l'intervalle de moitié : 100, 50, 25, 13, 7, 4, 2, 1.

Pourquoi les données doivent-elles être triées ?

Parce que c'est seulement dans ce cas que la réponse « trop petit » ou « trop grand » dit quelle moitié on peut éliminer. Dans des données mélangées, il faut vérifier une par une.

À partir de quel âge peut-on l'apprendre ?

Un enfant de huit ans comprend déjà le jeu du nombre à deviner. L'algorithme lui-même, avec des variables, vaut la peine d'être introduit vers 12–13 ans.

À lire aussi

La programmation pour les enfants dès 7 ans — par où commencerComment commencer la programmation avec un enfant de 7 ans ? D'abord l'ordre des étapes, puis les décisions et les boucles. Un plan pratique pour les parents, des jeux sans écran et des exemples tirés de l'appli Looponi.À quel âge apprendre la programmation à un enfantQuand commencer la programmation : ce que sait faire un enfant de cinq, sept et dix ans, par où commencer à chaque âge et quand vient le moment de Python.L'algorigramme pour les enfants — lire et construire des algorithmesCe qu'est un algorigramme (organigramme de programmation), ce que signifient DÉBUT, FIN, le losange et le rectangle, et comment apprendre à un enfant à construire des algorithmes pas à pas. Exemples et exercices.La boucle en programmation — comment l'expliquer à un enfantCe qu'est une boucle, pourquoi elle a besoin d'une condition d'arrêt et pourquoi le compteur doit changer. Exemples simples, jeux et exercices sur les boucles pour les enfants d'âge scolaire.Apprendre à un enfant à trouver les erreurs d'un programmeDéboguer compte plus qu'écrire du code. Comment apprendre à un enfant à prédire, suivre un programme pas à pas et le tester aux limites — sans frustration.Scratch, ScratchJr, Code.org ou Looponi — que choisir pour un enfantComparaison de quatre outils gratuits pour apprendre la programmation aux enfants : pour quel âge, ce qu'ils apprennent et quand choisir lequel. Honnêtement, y compris là où les autres sont meilleurs.Looponi en bref — l'essentiel sur l'appliL'essentiel sur Looponi : une appli gratuite pour apprendre les algorithmes et la programmation aux enfants dès le CP, sans publicité et sans compte, sur Android et dans le navigateur.

Tous les guides →