Java: Computer soll Zahl erraten?

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Zunächst: Dein Ansatz ist richtig, nennt man binäre Suche und ist immer in log_2(n) zu schaffen. für 1000 ist log_2(n)<10, da 2^10=1024.

Du berechnest die Mitte falsch, das ist alles ;-). Schau Dir einfach mal das Beispiel mit den hypotetischen Intervallgrenzen 700 und 900 an.

Die Lösung ist eher g1+(g2-g1)/2 (oder für die Badboys (g1+g2)/2 - In Anlehnung an den Mittelwert/das arithmetische Mittel).

Addier auf deine Mitte mal noch deine Untergrenze drauf.

Folgendes Beispiel:
Untergrenze: 125
Obergrenze: 250
Gesucht: 146
Mitte = (250-125)/2=125/2=62,5~62

Das dürfte ziemlich daneben gehen mit der Rechnung ^^.

Der Computer nimmt die Zahlenfolge 512 256 128 64 32 16 8 4 2 1 und je nachdem ob du höher oder niedriger sagst wird die nächste Zahl dazugezählt oder abgezogen – funktioniert immer in 10 Versuchen.