Häh, das verstehe ich nicht.
Ich schrieb doch rand(1,37), wobei ich die 37 als 0 annehme, da ich nicht weiß, wie PHP 0%n definiert (es sollte auch eig. "== 1" heißen, weil ich erst eine 0 eingetragen habe (für mich ist 0%2=0), es mir dann aber überlegt) habe. Jedenfalls sind so 18 gerade und 19 ungerade Zahlen dabei, oder, wenn man auf rot setzt, 18 rote und 19 nicht-rote (18 schwarze und die Null) dabei. Die Null ist doch, soweit ich weiß, ein Gewinn für die Bank, also ein vollkommender Verlust.
Die Taktik war übrigens folgende:
Man fängt mit einem Einsatz von 1 an. Jedes Mal, wenn man verliert, verdoppelt man seinen Einsatz. Wenn man aber gewinnt, fängt man wieder bei einem Einsatz von 1 an.
Mein Script sollte doch eig. genau das simulieren, oder?
#!/bin/php
<?php
// Setze ein Startkapital von 50 Euro fest
$kapital = 50;
// Spiele insgesamt 100 Mal
$spiele = 100;
// Fange mit einem Einsatz von 1 an
$einsatz = 1;
// Start
$i = 0;
while ($i<$spiele) {
// Wenn man gewinnt, also mit einer zufälligen Chance von 18/37. Hier gehört wie gesagt ein "== 1" hin. Das Resultat ist aber das selbe.
if(rand(1,37)%2 == [COLOR=Red][B]1[/B][/COLOR]) {
// Verliert man, wird der Verlust abgezogen und man verdoppelt den nächsten Einsatz
$kapital = $kapital-$einsatz;
$einsatz = $einsatz*2;
} else {
// Gewinnt man, wird der Gewinn addiert und man setzt den nächsten Einsatz wieder auf 1.
$kapital = $kapital+$einsatz;
$einsatz = 1;
}
// Zähle das Spiel
$i++;
}
// Gebe das Resultat.
echo "Endkapital: $kapital";
?>
Alles anzeigen
EDIT:
@EDIT xD
ZitatAlles anzeigenif(rand(1,37)%2 == "0") {
$kapital = $kapital-$einsatz;
// Das darfst Du hier nicht machen, denn die Variable
// wird unten nochmal verwendet, Du kannst hier $kapital = $kapital + $einsatz
// setzen, aber nicht einfach die Variable $einsatz verdoppeln!
$einsatz = $einsatz*2;
} else {
$kapital = $kapital + $einsatz;
// Auch falsch, denn wenn "ungerade" kommt, musst du das Kapital
// verringern: $kapital = $kapital - $einsatz, denn einen Gewinn hast Du hier
// nicht!
$einsatz = 1;
}
$i++;
Warum darf ich es nicht?
In dem "while"-Durchgang wird die Variable nicht mehr benutzt. Und im nächsten Durchgang SOLL sie bei Verlust ja verdoppelt sein, sonst ist es keine Taktik.
Und das gerade/ungerade habe ich schlicht verwechselt (s.oben).