[PHP] Was ist falsch ?



  • Hi, ich hab ein kleines Programm geschrieben, was mittels Brute-Force ein paar Zahlenpaar ermitteln soll. Das ganze soll mir die Lösung zu einem kleinen Zahlenspiel bringen (Jede Kante eines Würfel bekommt eine Zahl zugeordent (1-12), es sollen jeweils die 3 Zahlen an der Ecke des Würfel die selbe Summe ergeben). Nun hab ich folgendes Programm geschrieben, irgendwie funzt es nicht, hab schon nach Fehler geschaut, mir ist aber nichts aufgefallen, könnt ihr mir helfen ?

    <?
    versuche=0;versuche = 0; x = array(1,2,3,4,5,6,7,8,9,10,11,12);
    while(($x[0] + $x[1] + x[2]) == (x[0] + $x[4] + x[3]) && (x[0] + $x[1] + x[2]) == (x[1] + $x[6] + x[5]) && (x[0] + $x[1] + x[2]) == (x[10] + $x[5] + x[3]) && (x[0] + $x[1] + x[2]) == (x[2] + $x[7] + x[8]) && (x[0] + $x[1] + x[2]) == (x[7] + $x[9] + x[6]) && (x[0] + $x[1] + x[2]) == (x[10] + $x[11] + x[9]) && (x[0] + $x[1] + x[2]) == (x[11] + $x[4] + x[8])) { srand ((float)microtime()*1000000); shuffle (x);
    versuche++; } ?>

    Zahlenspiel

    Versuche <tr><td>Summe eines Ecks</td><td><? echo($x[0] + $x[1] + x[2]); ?>
    0 <tr><td>1</td><td><? echo(x[1]); ?>
    2 <tr><td>3</td><td><? echo(x[3]); ?>
    4 <tr><td>5</td><td><? echo(x[5]); ?>
    6 <tr><td>7</td><td><? echo(x[7]); ?>
    8 <tr><td>9</td><td><? echo(x[9]); ?>
    10 <tr><td>11</td><td><? echo($x[11]); ?></td></tr>
    </table>
    </body>
    </html>



  • Deine while Bed. stimmt nicht so ganz (du willst ja nicht solange durchlaufen, wie du eine Lösung hast, sondern solange du keine hast)

    Bist du dir sicher, dass es da überhaupt eine Lösung gibt? Weil ich hab mir das grad so überlegt:
    Jede Kante kommt 2 mal in den Summen der Ecken vor. Zählt man aber die Zahlen von 1 bis 12 zusammen und nimmt sie mal zwei, so ist die Zahl nicht durch 8 teilbar 😕 (19,5)


  • Anmelden zum Antworten