E 585. Devinez… ***
Problème proposé par Raymond Bloch
Vous jouez avec moi. Je choisis, sans vous le dire, un nombre entier N que vous devez deviner en posant des questions de la forme : « N est-il égal à 10 ? » et je dois répondre ou bien « Oui, vous avez gagné » ou bien
« Non, 10 est trop petit » ou bien « Non, 10 est trop grand » mais dans ce dernier cas, vous recevez une pénalité et votre essai est compté pour deux questions au lieu d’une. Vous avez droit à 6 essais et vous gagnez si au sixième essai au plus tard, je vous réponds « Oui, vous avez gagné ».
Déterminez la plus grande valeur de N que je peux choisir pour que vous soyez certain à 100% de trouver en 6 essais au maximum n’importe quel entier que j’aurais sélectionné entre 1 à N (inclus).
Quelle est votre stratégie ?
Pour les plus courageux : Combien d'essais au plus (le moins possible) vous faut-il pour trouver tout nombre de 1 à 1596 ?
Solution proposée par Michel Lafond.
Pour éviter toute confusion, nommons QUESTION toute phrase « N est-il égal à x ? » et pénalité le nombre
1 si la réponse est « OUI » ou « TROP PETIT » 2 si la réponse est « TROP GRAND »
Notons P (N) le nombre minimal de pénalités nécessaires à la divination de tout entier compris entre 1 et N.
On a sans problème P (1) = 1
Puis P (2) = 2 (à condition de poser comme première question « N est-il égal à 1 ? »)
Comment calculer P (3) ?
Si on pose comme première question « N est-il égal à 1 ? », dans le pire des cas on aura comme réponse « trop petit » ce qui laisse le choix entre 2 et 3, problème équivalent au choix entre 1 et 2.
Il faudra donc dans ce cas P = 1 + P(2) = 3 pénalités.
Si on pose comme première question « N est-il égal à 2 ? » dans les pires des cas on aura comme réponses - ou bien « trop petit » ce qui implique N = 3 d’où la seconde et dernière question : « N est-il égal à 3 ? » Il faudra dans ce cas P = 1 + 1 = 2 pénalités.
- ou bien « trop grand » ce qui implique N = 1 d’où la seconde et dernière question « N est-il égal à 1 ? » Il faudra dans ce cas P = 2 + 1 = 3 pénalités.
Si on pose comme première question « N est-il égal à 3 ? » dans le pire des cas on aura comme réponse « trop grand » ce qui laisse le choix entre 1 et 2, nécessitant 2 questions puisque P (2) = 2.
Il faudra dans ce cas P = 2 + P(2) = 4 pénalités.
On a donc le tableau pour N = 3 :
Première question 1 ? 2 ? 3 ?
Nombre de pénalités
dans le pire des cas 3 3 4
Par conséquent P (3) = 3
(À condition de poser comme première question « N est-il égal à 1 ? » ou « N est-il égal à 2 ? »)
On trouve de même pour N = 4 :
Première question 1 ? 2 ? 3 ? 4 ?
Nombre de pénalités
dans le pire des cas 4 3 4 5
Par conséquent P (4) = 3
(À condition de poser comme première question « N est-il égal à 3 ? »
On calcule ainsi P (N) de proche en proche et on obtient le début du tableau des pénalités :
N 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
P (N) 1 2 3 3 4 4 4 5 5 5 5 5 6 6 6 6 6 6 6 6 7
La réponse à la première question est 20, ce qui signifie
que si N = 20, on peut avec 6 pénalités maximum deviner tout entier
entre 1 à 20 (
À condition de poser comme première question « N est-il égal à 8 ? ») maisque si N = 21 il faudra 7 pénalités dans le pire des cas.
Pour la seconde question :
Le tableau précédent montre que pour chaque entier k jusqu’à 6, P (N) = k pour N compris entre où F est la suite de Fibonacci définie par
Démontrons cela par récurrence pour tout entier k.
Si cela est vrai jusqu’à k – 1, alors le début du tableau des pénalités minimales est
x … … … … …
P (x) … k – 3 … k – 3 k –2 … k –2 k –1 … k –1
Pour que la récurrence fonctionne, il faut démontrer que (Cases en jaune ci-dessus).
Or P est clairement une fonction croissante, donc il suffit de démontrer
Démontrons d’abord
On a donc N = et il faut deviner X compris entre 1 et N.
Pour chaque question « X est-il égal à x ? » on a trois réponses possibles : Réponse « OUI » dans ce cas, la pénalité est 1.
Réponse « TROP PETIT » dans ce cas, la pénalité est Réponse « TROP GRAND » dans ce cas, la pénalité est
Il faut se placer dans le pire des cas, donc choisir le maximum des 3 pénalités ci-dessus. Il est donc inutile de considérer le premier cas, et la pénalité associée à la stratégie initiale « N est-il égal à x ? » est égale à
Le but est de trouver pour x décrivant 1, 2, …,
Or, si donc d’après l’hypothèse de récurrence.
Et si donc d’après l’hypothèse de récurrence.
Si donc d’après l’hypothèse de récurrence.
Et si donc d’après l’hypothèse de récurrence.
Si donc d’après l’hypothèse de récurrence.
Et si donc d’après l’hypothèse de récurrence.
On déduit de ce qui précède que si alors
Résumons les résultats obtenus ci-dessus dans le tableau suivant.
x 1 … … …
k k k
k k k k k k k + 1 k + 1 k + 1
On a bien pour x décrivant 1, 2, …, ,
Démontrons enfin
En procédant comme ci-dessus, on arriverait au tableau
x 1 … … + 1 …
k + 1 k + 1 k + 1 k k + 1 k + 1 k + 1 k + 2 k + 2 k + 2
Qui prouve bien pour x décrivant 1, 2, …, , . FIN DE LA RECURRENCE
On peut maintenant répondre à la seconde question, puisque pour k = 15 on a On en déduit qu’avec 15 pénalités on devinera tout entier X compris entre 1 et 1596.
On ne peut pas faire mieux.