Jump to content

Habe ein bisschen rechnen (lassen)


maddes

Recommended Posts

Hallo,

ich bin noch neu beim Roulette, und habe mich jetzt mal mit den "berüchtigten" progressionen beschäftigt.

Angefangen vom verdoppeln 1-2-4-8-16

bis zu etwas gewagteren progressionen wie 1-3-7-15-31

und zwischendingern wie 1-2-5-10-21-42

Ich hatte da also den Gedanken:

Beim Verdoppeln könnte man offenbar gewinnen, wenn es a) kein Limit des Tisches gäbe und b) man selbst unbegrenzt Geld hätte. Dann könnte man wirklich immer spielen, bis man gewinnt.

Ich habe ein kleines Programm geschrieben, das spielt folgendermassen:

-Es ermittelt eine Zufallszahl von 0 bis 36

-ich sage mal, ich setze immer auf rot. äquivalent ist das

praktisch sind folgende Spielweisen ja völlig äquivalent:

-spiele immer rot

-spiele imme schwarz

-spiele rot, bis rot gewinnt, dann schwarz, bis schwarz gewinnt.

-spiele ungerade oder gerade

-spiele irgendwie rot oder schwarz

die Gewinnwahrscheinlichkeit liegt immer bei 18/37.

Also sage ich in meinem Programm, ich gewinne bei Zahlen grösser als 18.

Bei Gewinn bekomme ich den Gewinn, bei Verlust verliere ich ihn.

Ausserdem lege ich einen Level fest:

Ich mache maximal x Progressionen, wenn ich dann verloren habe, fange ich wieder von vorne an (bei 1).

Ich lasse mir so die Werte aller spiele ausgeben und sehe dann den Schlussstand.

Bei mir passiert nun folgendes:

Wenn ich das ganze auf einige 10000 Spiele einstelle, wird das Ergebnis immer recht stabil.

Lasse ich 100 000 läufe mit 1-2-4-8-16- .... -512 laufen, sind die Endstände:

)bei 11 Progressionen etwa: 4700 (mit 22 abbrüchen) bzw. 6700 (mit 21 Abbrüchen) (Gewinn!). Abbrüche sind dabei die Überschreitung der x Progressionen.

Bei 10 Progressionen erhalte ich gar einen Gewinn von etwa 7700 (40 Abbrüche) bzw. 9700 (39 Abbrüche)

Bei 9 Progressionen bekomme ich dann Verluste (-4500)

Bei 8 sind es -16000, bei 7 -12000, bei 6 - 8000, bei 5 -7000, etc.

Macht mein Programm irgendwas verkehrt?

Die Aussage lautet ja: Wer dauerhaft diese Progression spielt und garantieren kann, dass man sich 10 Iterationen leisten kann, gewinnt auf dauer sicher.

Das Programm ist ein ganz popeliges PHP -commandozeilen Programm und bloss 69 Zeilen lang, ich würds hier posten, wenn jemand drüber nachdenken mag?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also hier habe ich dann mal den quelltext des php-stopp!es.

#!C:\xampp\php\php.exe -q
<?php echo "Hello world of PHP CLI!\n";
#diese Datei enthält Endresultate (ah, das Verzeichnis c:\roulette sollte wohl existieren)
$handle=fopen("C:\/roulette\/output.txt", 'a');

#srand(); #mit srand(zahl) könnte man einen festen startpunkt der Zufallsfolge setzen , die Zufallsfolge wird dann immer gleich
$runs=100000; #Anzahl der Spiele

#Die folgenden Arrays enthalten eine reihe von Progressionen; $desc ist die Beschreibung. einfach eine auskommentieren
$desc="x 2:";
$setArr=array(0,1,2,4,8,16,32,64,128,256,512,1024);
$desc= "x 2 / x2 + 1";
$setArr=array(0,1,2,5,10,21,42,85,170,341,682,1364);
#$desc="x 2 +1 / x2";
#$setArr=array(0,1,3,6,13,26,53,106,213,426,853,1706);
#$desc= "x 2 + 1";
#$setArr=array(0,1,3,7,15,31,63,127,255,511,1023,2047);
#$desc= " x 3";
#$setArr=array(0,1,3,9,27,81,243,729,2187,6561,19683,59049);

fwrite ($handle, "\n$runs Runs : Biet-array: $desc :". $setArr[1]." ". $setArr[2]." ". $setArr[3]." ". $setArr[4]." ". $setArr[5]." ". $setArr[6]." ". $setArr[7]." ". $setArr[8]." ". $setArr[9]." ". $setArr[10]."\n");
echo "spiel:\n";

#Äussere Schleife: so oft wird eine Spielreihe gespielt. Hätte ja gleich die innere um so viel mal mehr laufen lassen können, aber so sieht man bes. hübsch, das das ergebnis stabil ist.
for ($j = 1; $j<10;$j++)
{
$val=1; #der Kontostand
$valmin=1; #der niedrigste Kontostand der Spielreihe
$valmax=1; #der höchste Kontostand der Spielreihe
$level=1; #level ist der Level der Progression
$leveloverrun=0; # immer, wenn ich echt verliere (also bis zum höchstzulässigen Level gekommen bin), wird das hier gezählt.
$maxlevel=11; # höchster spielbarer Level (oben hab ich immer 11 Werte in den Arrays, mehr dürfte kein Casino drinhaben)
$max=2000; #wird im Moment nicht verwendet, wollte hier den höchst bietbaren Betrag angeben. Stattdessen genügt der höchste level.
for($i = 1; $i<=$runs;$i++)
#for($i = 1; $i<=1000000;$i++)
{
$rand=rand(0,36); #zufallszahl zw. 0 und 36
$curlevel=$level; #zwischenspeichern gegenwärtigen levels f. ausgabe
if ($rand<18) #die Hälfte der Zahlen <> 0 gewinnt
{
#win
$WIN=" *WIN* ";
$val+= $setArr[$level]; # gewinn kassieren
$level=1; # wieder auf 1 zurück
if ($val>$valmax)$valmax=$val; #maximalwert protokollieren

}else
{
#loose
$WIN=" Loose ";
$val=$val-$setArr[$level]; #verlust bezahlen
$level++; #level erhöhen
if ($level>$maxlevel) #falls maxlevel überschritten, reihe beenden u. wieder bei 1 anfangen
{
echo "\nAbbruch: level überschritten \n";
$level=1;
$leveloverrun++;
#break;
}
if ($val<valmin)$valmin=$val; #minimalwert protokollieren
}
echo "$rand $curlevel $WIN $val $setArr[$curlevel] \n"; #Ausgabe am Bildschrim f. dieses Spiel
}
#ausgabe Endstand auf Bildschirm u. in Protokolldatei
echo "max: $valmax / min: $valmin\n";
fwrite ($handle, "endstand: $val max: $valmax min: $valmin leveloverruns: $leveloverrun maxlevel: $maxlevel\n");
}
fclose($handle);
?>

Link zu diesem Kommentar
Auf anderen Seiten teilen

oki, werde das mit den Zahlen aus random.org mal überlegen, als schnelle alternative benutze ich jetzt erst mal mt_rand, wie in deinem Link ja ebenfalls empfohlen.

Und siehe da: exakt dieser unterschied erzeugt bei mir bereits ein negatives endergebnis! Mit sehr viel grösseren Variationen!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Na, dann ist die Welt ja wieder in Ordnung. :cowboy:

Übrigens wertet dein Programmcode im Gegensatz zu deiner

einleitenden Beschreibung alle Zahlen UNTER 18 als Gewinn.

Also sage ich in meinem Programm, ich gewinne bei Zahlen grösser als 18.

vs.

if ($rand<18) #die Hälfte der Zahlen <> 0 gewinnt

{

#win

$WIN=" *WIN* ";

$val+= $setArr[$level]; # gewinn kassieren

$level=1; # wieder auf 1 zurück

if ($val>$valmax)$valmax=$val; #maximalwert protokollieren

}

Das macht vom Ergebnis her aber keinen Unterschied.

Gruss,

duffyduck

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ah, richtig, hatte die ganze Zeit mit über 18 gerechnet. Dann, bevor ich das abgeschickt habe, habe ich mir gedacht, vielleicht ist ja in der rand() was drin, was diese grösseren Zahlen bevorzugt, undd das umgedreht. Da sind dann die Zahlen 0 bis 17 gemeint.

(Gewissermassen ist mit diesem Dreher die 18 zur "grünen Roulette Null" geworden).

Aber grösser oder kleiner 18 macht f. das ergebnis keinen Unterschied. Schon seltsam, oder?

Am markantesten und f. das Endergebnis offenkundig entscheidend: mit rand() werden bei längeren Ketten deutlich weniger level-overruns erzeugt, als mit mt_rand(). Die php- "rand()" funktion verhält sich gewissermassen sowas wie "über-zufällig", also Folgen, bei denen man denkt: "das kann jatzt gar nicht sein, dass nach so viel rot schon wieder eine rot kommt", sind tatsächlich seltener, als sie richtig statistisch sein sollten ...

Gruss,

Mathias

Link zu diesem Kommentar
Auf anderen Seiten teilen

offensichtlich benutzt Du falsche Vorgaben:

"größer 18" liefert die Ergebnisse für Passe

"kleiner 18" liefert nicht die Ergebnisse für Manque

es sei denn Du schließt die 0 aus mit "größer 0 und kleiner 18"

dann hast Du auch nicht diese Abweichungen

gruss

local

Link zu diesem Kommentar
Auf anderen Seiten teilen

@local:

Von Manque und Passe hat niemand hier etwas geschrieben/gesagt.

(Gewissermassen ist mit diesem Dreher die 18 zur "grünen Roulette Null" geworden)

Maddes hat lediglich die 37 möglichen Zahlen im Verhältnis 18/19 geteilt.

Entweder gewinnt er bei den Zahlen 0-17 oder bei 19-36.

Daher ist die 18 für ihn theoretisch die "Zero".

Mit welchen Ziffern man letztendlich die jeweilige Chance betitelt, ist für das Ergebnis völlig wurscht.

Gruss,

duffyduck

PS.:

es sei denn Du schließt die 0 aus mit "größer 0 und kleiner 18"

Es muss dann schon größer 0 und kleiner 19 sein, denn sonst gibt es Abweichungen!!!

bearbeitet von duffyduck12
Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 3 weeks later...

Nach einiger Pause habe ich jetzt solidere Ergebnisse.

Also, im grunde sollte mein stopp! leicht auf alle möglichen starren Systeme einzustellen sein.

Mit dem besseren zufallsgenerator kommt natürlich v.a. eines heraus: auf lange sicht gewinnt immer die Bank - Überraschung ! :santa_smiley:

Trotzdem: man kann tatsächlich an ein paar Parametern drehen, und tatsächlich Aussagen bekommen :-)

Erstmal: man muss mit dem richtigen Zufallsgenerator ziemlich viele durchläufe machen, damit das Endergebnis stabil wird.

Stabil im Sinne von: Mehrere Runs mit denselben Parametern liefern ein ähnlich Grosses Ergebnis. Deutlich kürzere Runs liefern eben sehr unterschiedliche Ergebnisse, da sind dann auch mal Gewinne drin.

Tatsächlich bekomme ich bis etwa 100 000 Spielen hin, das mal ein Spiel mit Gewinn ausgeht.

bei 1 000 000 Stabilisieren sich die Verluste mit noch recht hoher Variabilität (+-25%)

bei 10 000 000 ist die Variabilität nur noch wenige %, die Aussagekraft also ziemlich gut, aber das stopp! läuft eeewig.

Im Folgenden rechne ich mit 2 000 000, das ist ein guter Kompromiss.

Jetzt kann ich also vergleichen: Laufe ich besser, wenn ich möglichst tief die Progression mitmache, oder verliere ich dann möglichst schnell (wie verzocke ich am schnellsten Haus und Hof, sozusagen)

Ich hätte mir ein bisschen gedacht, wenn man mit so einem progressionsmodell sehr viel Geld zur Verfügung hat, könnte man besser gegen die Bank bestehen, also man würde weniger verlieren, aber es ist nicht so. Man fährt besser, wenn man nah wenigen Progressionen aufhört.

Hier die durchschnittlichen Verluste bei

11 Bietlevels: -475448

5 Bietlevels: -172114

3 Bietlevels: -99311

Das gilt für die Progression 1 2 5 10 21 42 85 170 341 682

Wenn hier irgendjemand diese ergebnisse interessant findet, kann ich auch die für andere Progressionen hier schreiben.

Da kommt dann der Vergleich: welche Progression schneidet besser ab...

Aber da rechne ich noch.

:-)

--

kennt Ihr schon yuwie?

yuwie.at ist das neue social network, das seine Mitglieder an den Werbeeinnahmen bezeiligt. Yuwie ist ein Network, das seine Benutzer bezahlt!

Anmelden bei yuwie.at

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wie ist deine Meinung dazu?

Du kannst jetzt schreiben und dich später registrieren. Bereits registrierter Teilnehmer? Dann melde dich jetzt an, um einen Kommentar zu schreiben.
Hinweis: Dein Beitrag wird nicht sofort sichtbar sein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Neu erstellen...