G240 : Le cadenas défectueux
Chacune des trois roues dentées d’un cadenas à molettes peut prendre 10 positions repérées par les lettres A à J. Le cadenas est défectueux et s’ouvre quand deux lettres sur trois de la combinaison sont
correctement placées. Trois secondes suffisent pour essayer une combinaison quelconque. Puis-je ouvrir le cadenas en moins de cinq minutes ? Si oui, quel est le temps minimum requis ?
On peut bien sûr ouvrir le cadenas en essayant toutes les combinaisons de deux des trois molettes, soit cent possibilités, ce qui demande 300 secondes soit 5 minutes. Mais on remarque qu’il y a 28 combinaisons qui permettent d’ouvrir (la vraie combinaison, plus les trois séries de 9 obtenues en changeant un seul chiffre) sur les mille.
Sans pouvoir prouver que cette stratégie est optimale, on peut arriver à diminuer le temps maximum nécessaire de la façon suivante: faisons correspondre un chiffre à chaque lettre (A=0, B=1,..., J=9 ; bien des cadenas portent d’ailleurs des chiffres...) et passons d’une combinaison à la suivante en ajoutant (modulo 1000) un même nombre n à chaque pas. Quitte à retrancher partout un même nombre, on peut supposer que la combinaison est 000. Dans l’anneau des entiers modulo 1000, les éléments non
divisibles par 2 ou 5 sont inversibles, et les 1000 premiers multiples d’un tel nombre sont tous distincts. En particulier, il existe p tel que n*p=1, et puisque le cadenas s’ouvre pour k=1,2,3,4,5,6,7,8,9,10,20,30,40,50,60,70,80,90,100,200,300,400,500,600,700,800,900, il s’ouvrira après kp pas, pour les valeurs de k ci-dessus. Lorsque k=100,...,900 kp est un multiple de 100; l’efficacité de la méthode repose sur la façon dont se répartissent les valeurs de kp pour k de 0 à 9 et de 10 à 90, dans les «tiroirs» des différentes centaines:
pour gagner quelque chose, il faut que l’on ait au moins un nombre dans chaque tiroir:
quel que soit le point initial, on tombera sur une combinaison qui ouvre le cadenas en moins de 100 pas.
Avec un bon tableur, on trouve facilement que p=107 donne le plus faible intervalle (70) entre deux ouvertures successives (outre les centaines, on aura l’ouverture après un nombre de pas égal à 70, 107, 140, 210, 214, 280, 321, 350, 420, 428, 490, 535, 560, 630, 642, 749, 856, 963) ; cela correspond à n=243, et le temps nécessaire sera au maximum de 210 s, soit 3 minutes et demi.