Eine Moeglichkeit ist folgendes: * X sei die gesuchte Zahl und OP der Operator (``|'' (OR), ``&'' (AND) oder ``^'' (XOR)), R der aktuelle Rateversuch und H(N) der Hinweis, den wir fuer den Rateversuch N erhalten. * Wenn H(A) = 0, dann gilt X OP A = 0, da in X OP A genau 0 Bits gesetzt sind. * Wenn H(A) = 8, dann gilt X OP A = 255, da in X OP A genau 8 Bits gesetzt sind. * Wir ermitteln zunaechst den Operator OP durch 2 Rateversuche: 1. Versuch: 0 2. Versuch: 255 Wenn die gesuchte Zahl die 0 oder die 255 ist sind wir fertig, ansonsten gibt es folgende Moeglichkeiten: H(0) H(255) Operator gleich 0 kleiner 8 AND groesser 0 kleiner 8 XOR groesser 0 gleich 8 OR Der 4. moegliche Fall (H(0) = 0 und H(255) = 8) kann nicht eintreten. * Zusaetzlich koennen wir aus dem Ergebnis ablesen, wieviele Bits in der gesuchten Zahl X gesetzt sind: - Falls der Operator AND ist, ist sind es H(255) - Ansonsten (Operator ist OR bzw. XOR) sind es H(0) * 3. bis 9. Versuch: 1, 2, 4, 8, 16, 32, 64 (entsprich 2 hoch k, k=0..6) Mit jedem Rateversuch R = 2 hoch k erhalten den Wert eines Bits der gesuchten Zahl X. Jede der geratenen Zahlen R unterscheidet sich nur in einem (dem k-ten) Bit von 0. Aus H(0), H(2 hoch k) und dem Operator laesst sich dann das k-te Bit von X wie folgt ermittlen: Operator Bedingung Wert des k-ten Bits in X AND H(2 hoch k) = 0 0 AND H(2 hoch k) = 1 1 AND H(2 hoch k) > 1 UNMOEGLICH OR H(2 hoch k) < H(0) UNMOEGLICH OR H(2 hoch k) = H(0) 1 OR H(2 hoch k) > H(0) 0 XOR H(2 hoch k) < H(0) 1 XOR H(2 hoch k) = H(0) UNMOEGLICH XOR H(2 hoch k) > H(0) 0 * Damit stehen nach 9 Rateversuchen die ersten 7 von 8 Bits fest. Das 8. Bit kann mit Hilfe der ersten 7 Bit und der breits bestimmten Anzahl der gesetzten Bits berechnet werden, steht also auch fest. * Damit erreichen wir im 10. Versuch das gesuchte Ergebnis.