Alors je propose deux énigmes, la première qui est plus un problème que je n'ai pas su résoudre (donc je ne connais pas la réponse), la deuxième est une énigme plus classique pour ne pas briser le topic. Il suffit donc de trouver la réponse à la deuxième pour avoir la main, mais je pense que la première vous intéressera.
Je soumets la première à vos nobles méninges, je suis sûr qu'à nous tous on doit pouvoir faire quelque chose :
Je suis invité chez des amis, et arrivés devant la porte de leur immeuble, je me trouve face à un digicode. Bien sûr, dans ma précipitation, je n'ai pas noté le code quand ils m'ont invité, et mon portable est déchargé. Je veux donc "hacker" le code, en testant tout simplement tous les codes possibles. Pour simplifier, disons que je me souviens qu'il y a 4 chiffres et aucune lettre. Bien sûr la solution logique qui vient est de tester comme ceci :
0000
0001
0002
…
9999
Mais pour que ça soit intéressant, il faut voir que le mécanisme de digicode ne se "reset" pas tous les 4 chiffres, par exemple si je teste 0012 puis 3400, et que le vrai code est 1234, la porte va s'ouvrir (j'aurais bien mis '1234' puisque j'aurais entré '00123400'). La première solution n'est donc pas la plus optimisée (certains codes sont testés plein de fois !).
Deux questions :
a) Existe-t-il une solution optimale où l'on testerait tous les codes qu'une et une seule fois ?
b) Comment peut-on "construire" une suite de chiffres la plus courte possible contenant tous les codes ?
Je pense que les meilleurs d'entre nous en programmation auront certainement des idées intéressantes.
L'énigme plus classique maintenant :
Le calife Al Nain va mourir, et écrit ses dernières volontés. Il veut que l'on donne toute sa fortune, ses palais, sa bateaux (tout ce qu'il possède en fait) aux pauvres et aux sans-logis, en gardant simplement son troupeau de chameaux, pour que celui-ci soit partagé entre ses trois fils. L'aîné doit hériter de la moitié du troupeau, le second doit en recevoir le tiers et le benjamin le neuvième. Al Nain meurt, et l'on exécute ses volontés. Seulement voilà, il a 17 chameaux (et ce serait dommage de couper un chameau en deux). Comment les partager entre ses fils ?