Tiré de problèmes d'ACM, il est vraiment classe à résoudre :
Je choisis un string de 2k < 1000 bits que je garde pour moi. Vous allez alors me faire des requêtes, je vous répondrai quelque chose selon la requête, et on continue jusqu'à ce que vous ayez la bonne réponse, sachant que vous avez le droit de vous servir de mes réponses aux requêtes précédentes. Une requête consiste à me proposer un string de 2k bits, et je vous réponds alors par l'une de ces trois réponses :
- Le string que vous avez proposé est le bon => GG, le jeu est fini et vous avez gagné.
- Le string que vous avez proposé a
exactement k bits qui différent de mon string.
- Nous ne sommes dans aucun des deux cas précédents.
Trouver un algo pour trouver le string initial en moins de 2k + 500 requêtes.
Petits spoilers pour vous éviter d'être bloqués :
Le premier spoile pas grand chose et j'aurais peut-être du le mettre dans le problème initial :
Le deuxième spoile un peu la solution :
Avec le troisième, la solution devient évidente :