php poker generierte zufällige Ergebnisse stimmen nicht mit dem überein, was erwartet wird

9

Ich habe über Poker-Aktien recherchiert. Was ich getan habe ist pokerstove Programm mit einigen ausgewählten. Und mit diesem Programm berechnet die Aktien unter Verwendung aller Methoden. So pokerstove Ergebnisse:

Ich habe auch eine Tabelle erstellt, in der ich die zufälligen Ergebnisse speichern kann:

%Vor%

Die Daten der Ergebnisspalte sehen so aus: Jd, 9d, Qh, 5c, Kc - das sind die Karten an Bord.

Winner_hands Spalte Daten sehen so aus: Ks-Ac, 6c-Ad, 3c-Ah (kann 1 Hand gewonnen werden, kann alle 8 Hände gewonnen werden).

Hier ist der Code, der die Ergebnisse zur Datenbank generiert. Sein auf codeigniter Rahmen. Und um nicht die ganze Poker.php zu kopieren, kopiere ich einfach ein paar Funktionen, die davon verwendet werden:

%Vor%

poker_tests.php

%Vor%

Wie wir in der Zufallsfunktion sehen - benutze ich twister library mit linux dev / urnadom, wenn ich auf Linux teste und native mt_rand, wenn ich unter Windows bin. Unterschiede nicht bemerken.

Um Ergebnisse auszuwählen, verwende ich solche Abfragen:

Um die Gesamtzahl der Ergebnisse zu erhalten

%Vor%

Um zu erfahren, wie hoch der Gesamtgewinn (Gewinn + Unentschieden) der Hand ist:

%Vor%

Um zu sehen, wie viele Töpfe mit der Hand verbunden sind:

%Vor%

Der Poker-Server dient dazu, die Hand-Equity zu bekommen. Von Hand Equity am River Ich bestimme, ob Hand gewonnen hat oder nicht - wenn Hand Equity ist & gt; 0 dann hat es gewonnen.

Dieses Tool wird auf einem anderen Server verwendet - es gibt PHP-Code, der das Python-Programm ausführt, aber das spielt hier keine Rolle.

Ссылка

Dieses Tool ist wie pokerstove, hat aber eine Befehlszeilenversion. Btw nicht kaufen dieses Werkzeug, wir kauften und sie nicht den Lizenzschlüssel senden, irgendwie mögen sie nicht.

Und jetzt die Ergebnisse:

Ссылка

Wenn wir nun vergleichen, gewinnen die Hände öfter + tie als pokerstove oder pokersleuth zeigt Equity. Und wenn ich ant bin% - es ist viel größer als Poker-Herd zeigt. Die Probe ist nicht so klein. Pokerstove verwendet fast 400K Spiele, da ist es etwas weniger, aber die Tendenz bleibt die gleiche. Zuerst probierte ich viel kleinere Proben wie 10K-Spiele - gleiche Tendenz. Wenn ich 100K mehr erzeugen werde, bin ich nicht überrascht, wenn das Ergebnis ungefähr gleich bleibt. Auch dieses Beispiel wird unter Linux generiert. Aber ungefähr dasselbe Beispiel wird auch auf Fenstern erzeugt, und noch sind die Gewinne mehr als pokerstove Shows, und die Summe des Gewinns% ist 110-112% auch.

Also verstehen wir nicht - erzeuge ich etwas Schlechtes oder zeigen diese Programme falsch? Programme mit falschen Aktien sind nicht wahrscheinlich, da sie weit verbreitet sind und wahrscheinlich schon viel getestet werden sollten.

Aktualisierung:

  

Ich glaube, ich habe es endlich verstanden :) Pokersleuth berechnet die Chancen eines   Hand (zwei Karten) gewinnt mit den 5 Karten auf dem Brett. Du bist   Dann vergleichen Sie diese Chancen mit dem wirklichen Ergebnis (die Hände von kennen   alle anderen Spieler). Richtig?

Richtig. Ich musste hier schreiben, weil es in den Kommentaren keine längeren Diskussionen gab.

Aktualisierung:

Generierte mehr Zeilen - aktuell 515989 auf dem Linux-Server, die% bleiben immer noch ungefähr gleich wie zuvor. Also nicht bewegen

    
Darius.V 24.02.2014, 08:32
quelle

1 Antwort

4

Sie haben 296350 generierte Ergebnisse, aber 332911 wins & amp; Bindungen.

Stimmt irgend ein Teil dieses Prozesses mit der Tatsache überein, dass es bei einem Gleichstand zwischen zwei oder mehr Händen liegt? Es sieht so aus, als ob Krawatten überzählig sind.

Nimm deinen Gesamtgewinn und verbinde%, 112.3371014%. Multiplizieren (generierte Ergebnisse dividiert durch Gewinne und Amortisationen). Sie erhalten genau 100%. Was bedeutet das?

Sehen Sie sich auch Ad6c und Ah3c an. Ihre Gleichstand ist genau die gleiche, und sehr wahrscheinlich die gleichen Hände (wo der Sieg ein Paar Asse war).

Aber für die Hände, in denen sie binden, wird diese Hand zweimal gezählt / gewichtet (einmal für Ad6c und einmal für Ah3c). Das ist der Grund, warum deine Krawatte% mindestens das Doppelte ist, was sie sein sollten. Du musst die Anzahl der Binder durch die Anzahl der Hände, die gebunden sind, normalisieren.

    
Iterative Gypsy 26.02.2014, 22:54
quelle

Tags und Links