Egal wie die Ausgangsposition ist und egal, wie viele Zähne die Zahnräder haben, es lässt sich die Ausgangsposition immer so umstellen, dass Rad 2 und 3 in Zielposition sind, und nur Rad 1 abweicht (ich drücke halt Taster 3 so oft, bis Rad 2 richtig steht und Taster 2 so oft, bis Rad 3 richtig steht).
Jetzt hat Rad 1 noch x Schritte bis zur Zielposition.
Jetzt kann ich über die Tastendrücke [1], [2] und [3] folgendes sagen:
[1]+[2] = i*c (Die Summe der Tastendrücke auf Taste 1 und 2 muss einem Vielfachen der Zahnanzahl von Rad 3 entsprechen)
[1]+[3] = j*b (Die Summe der Tastendrücke auf Taste 1 und 3 muss einem Vielfachen der Zahnanzahl von Rad 2 entsprechen)
[2]+[3] = k*a + x (Die Summe der Tastendrücke auf Taste 2 und 3 muss einem Vielfachen der Zahnanzahl von Rad 1 plus den fehlenden Schritten von Rad 1 entsprechen)
(alle Variablen ganzzahlig)
Summiere ich diese drei Gleichungen erhalte ich:
2*([1]+[2]+[3]) = i*c + j*b + k*a + x
Sollten nun a, b und c gerade sein, kann diese Gleichung für ein ungerades x nicht gelöst werden -> Damit ist schon mal klar, dass nicht alle drei Werte gerade sein können.
Die interessante Frage ist nur, ob das reicht...
Ich sortiere die Zahnräder so, dass b und c entweder beide gerade oder beide ungerade sind, und dass b>=c ist.
Dann stelle ich - wie oben - die Räder 2 und 3 in Grundstellung.
Jetzt wird mit Taster 3 Rad 2 um b-c Schritte gedreht.
Sollte der Restweg von Rad 1 jetzt aus einer ungeraden Anzahl Schritte bestehen, drehe ich mit Taster 3 Rad 2 einmal komplett herum, da a und b nicht beide gerade sein können, ergibt sich dadurch ein dann gerader Restweg für Rad 1.
Diesen Restweg erledige ich nun halbe/halbe mit Taster 2 und Taster 3, damit ist Rad 1 in Zielposition und Rad 2 und Rad 3 um dieselbe Anzahl Schritte von der Zielposition entfernt. Also noch entsprechend oft Taster 1 drücken und die Kiste ist offen.
(Bei einem sehr kleinen a muss ggf. der Restweg als n komplette Umdrehungen von Rad 1 plus Restweg angenommen werden)