1.6 KiB
01 — Le Nombre Mystère
Algorithme : Recherche dichotomique Difficulté : Facile Durée estimée : 45 min — 1h
Contexte
Vous pensez à un nombre entre 1 et 100. L'ordinateur doit le deviner le plus vite possible en posant des questions.
À chaque essai, vous répondez :
<si votre nombre est plus petit que la proposition>si votre nombre est plus grand=si c'est le bon nombre
L'ordinateur utilise la recherche dichotomique : à chaque question, il coupe l'intervalle possible en deux.
Étapes
Étape 1 — Comprendre la stratégie
Sans coder, répondez sur papier : si le nombre est entre 1 et 100, quelle est la première proposition optimale ? Pourquoi ?
Étape 2 — Implémenter devine()
Complétez la fonction devine() dans starter.py :
- L'ordinateur part de
gauche = 1etdroite = 100 - Il propose
milieu = (gauche + droite) // 2 - Selon la réponse, il réduit l'intervalle
- Il compte le nombre d'essais
Étape 3 — Tester
Lancez le programme et jouez plusieurs parties. Vérifiez que l'ordinateur trouve toujours en 7 essais maximum.
Étape 4 — Extension (si vous avez le temps)
Ajoutez une deuxième version où c'est vous qui devez deviner le nombre de l'ordinateur. L'ordinateur choisit un nombre aléatoire (random.randint(1, 100)), et le programme vous dit si vous êtes trop grand ou trop petit. Comptez vos essais et comparez avec le maximum optimal.
Ce que vous devez rendre
- Le programme qui fonctionne
- La réponse à la question : pourquoi 7 essais suffisent toujours pour 100 nombres ?