Klaus: Zahl annähern

Hallo,
ich muss in PHP einen Algorithmus schreiben, der sich einer Zahl möglichst schnell annähert.

Idee:
Zahlenraum 1 bis 32, Zahl gegeben: 25
Man fängt in der Mitte an, 16.
Gesuchte Zahl ist größer. (32+16)/2= 24
25 ist größer als 24: (24+32)/2=28
25 ist kleiner als 28: (28+24)/2=26
25 ist kleiner als 26: (26+24)/2=25
Fertig.

Diese Annäherung nennt man auch "Binärer Baum".

Leider komme ich bei der Implementierung nicht weiter, evt. kann mir jmd. helfen oder hat so einen Script schonmal gefunden.

Grüße
Klaus

  1. Hallo,
    habs geschafft:
    <?php
    $z = 15;

    $jg = 32;
    $jk = 0;
    $j = 16;

    for($i=0;$i<50;$i++)
       {
       if($j == $z)
          {
          echo "richtig $j<br>";
          break;
          }
       else if($z > $j)
          {
          echo "größer als $j | $jg | $jk<br>";
          $jk = $j;
          $j = floor(($jg+$j)/2);

    }
       else if($z < $j)
          {
          echo "kleiner als $j | $jg | $jk<br>";
          $jg = $j;
          $j = floor(($jk+$j)/2);
          }
       }

    ?>

    P.S. Die For Schleife müsste man durch eine Endlosschleife oder so ersetzen ;)

    Sry für die Belästigung.

    Grüße
    Klaus