Files
1ereNSI/algorithmes/mini-projets/01_devine_nombre/sujet.md

45 lines
1.6 KiB
Markdown
Raw Normal View History

# 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 = 1` et `droite = 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 ?