Easier to read with cream paper, a tint, more contrast or larger text? Choose your colours and text, once, for every page.

Aperçu

Chercher en coupant en deux

Voici la première page de la leçon. Lis-la et essaie les activités. La suite est dans le cours complet.

40 minutes

Le jeu du nombre caché

Ton ami pense à un nombre entre 1 et 100. Tu as le droit de poser des questions. Il répond seulement : « Plus grand » ou « Plus petit ».

Tu ne vas pas dire 1, puis 2, puis 3. Tu dirais 50. Et si c'est « plus petit », tu sais déjà que la moitié des nombres ne sert plus.

Cette ruse est un algorithme célèbre. Tu vas l'écrire.

Mots-clés

MotCe que ça veut direExemple
Liste triéeUne liste rangée du plus petit au plus grand.[3, 8, 12, 15]
MilieuLa case du centre de la zone où on cherche.Entre les cases 0 et 10 : la case 5
IntervalleLa zone de la liste où la valeur peut encore se cacher.De la case 6 à la case 10
DichotomieUne façon de chercher qui coupe la zone en deux à chaque coup.Le jeu du nombre caché
Division entièreUne division qui garde seulement la partie entière du résultat. On l'écrit //.7 // 2 donne 3
CoupUn essai : on regarde une case et on compare.Proposer 50

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

À toi : joue d'abord

À toi de jouer

À toi : joue d'abord

3 questions
Essayez : vos réponses sont notées ici puis oubliées. Connectez-vous si vous voulez conserver votre score et reprendre là où vous en étiez.Se connecter pour conserver mon score

Tes réponses sont corrigées ici et ne sont pas conservées. Un compte garde tes résultats.

Exemple travaillé : le nombre caché est 37

CoupIntervalle possiblePropositionRéponse
1De 1 à 10050Plus petit
2De 1 à 4925Plus grand
3De 26 à 4937Trouvé !

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Calculer le milieu

Le milieu de 1 et 100 est (1 + 100) divisé par 2. Cela donne 50,5. Mais une case ou un nombre entier ne s'écrit pas avec une virgule.

En Python, la division entière // garde la partie entière : 101 // 2 donne 50. On l'utilise toujours pour le milieu.

À toi : le jeu joué par Python

Code: python
secret = 37
bas = 1
haut = 100
proposition = (bas + haut) // 2
coups = 1
print("Coup", coups, ": je propose", proposition)

while proposition != secret:
    if proposition < secret:
        bas = proposition + 1
    else:
        haut = proposition - 1
    proposition = (bas + haut) // 2
    coups = coups + 1
    print("Coup", coups, ": je propose", proposition)

print("Trouvé en", coups, "coups !")

# Change secret en 1, puis en 100. Combien de coups faut-il ?

Dans une liste triée

Pour chercher dans une liste, on fait pareil. Mais la liste doit être triée, du plus petit au plus grand. Sinon, « plus petit » ne veut rien dire.

On garde deux numéros de case : debut et fin. La valeur est forcément entre les deux. On regarde la case du milieu.

Exemple : on cherche 40 dans 3, 8, 12, 15, 21, 27, 34, 40, 46, 52, 60. Il y a 11 cases, de 0 à 10.

Exemple travaillé : chercher 40 dans la liste

CoupdebutfinmilieuCase du milieuQue faire ?
101052727 < 40 : debut = 6
261084646 > 40 : fin = 7
36763434 < 40 : debut = 7
477740Trouvé : indice 7

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

La leçon continue

11 parties de plus de cette leçon se trouvent dans le cours complet, avec les exercices et la vérification finale. Un compte te donne tout.