Exercice
Faire deviner un nombre (entre 1 et 100, choisi préalablement par vous) par votre programme, en moins de coups possible.
Parmi les algorithmes imaginables, le plus simple consiste à procéder par dichotomie, c'est-à-dire que le programme va à chaque moment proposer comme nombre celui qui se trouve juste au milieu des deux extrêmes possibles.
Par exemple, au tout début, les deux extrêmes étant 1 et 100, il proposera 50.
[B]
NB Une variante plus divertissante du programme consiste à lui faire choisir au début un nombre aléatoire entre 1 et 100, différent bien sûr du nombre choisi. Ainsi les séquences de recherche sont-elles plus variées qu’avec un départ systématique à 50…
Imaginons que vous ayez pensé au nombre 23.
Quand le programme demandera si c’est 50 (son tout premier choix), vous lui répondrez (honnêtement) « Non, 50 est trop grand. »
À ce moment-là, le programme est assuré d’une chose : les extrêmes possibles sont dorénavant 1 et 49, au lieu de 1 et 100.
Il proposera alors le nombre juste au milieu de 1 et 49 : 25.
Et ainsi de suite.
Source : Cet exercice est extrait d’un document
« Bases de Programmation » (1998-1999) du Pr. Éric Kirsch.
Dans ce document, l'exercice fait l'objet d’une analyse organique comparative :
- En Pseudo-Code
- En Arbre Programmatique,
- En Algorigramme Norme ISO 5807,
- En Langage Pascal.
NB : J’ai pensé à télécharger ce document mais j’ai perdu le lien internet.
Partager