bitset performant?
-
Erklär doch mal genauer, was man weiß. Welche Karten sieht man?
-
Benutzer gibt die zwei Karten von Spieler1 und die zwei Karten von Spieler 2 an, das ist der erste Fall. Kompliziertere Fälle implizieren mehr Hände für die Spieler, das nennt man Range, d.h. Spieler1 hat AA und Spieler2 hat KK,QQ,JJ und man erhält die mittlere Equity gegen die Range. Aber das lässt sich ja mit dem, was man dann schon hat, machen.
-
Man sieht also von jedem Spiele 2 Karten? Wieviele Karten gibt es insgesammt? 32?
-
52
Wie gesagt, es gibt 48*47*46*45*44 / (5!) Möglichkeiten für Boards.
-
Du siehst doch schon 2 Karten pro Spieler, oder? Dann hast du doch schon deutlich weniger Möglichkeiten.
-
Ja, deswegen fang ich mit 48 und nicht mit 52 an...
-
Ich meinte 48*47*46, weil 2 schon weg. Aber es gibt ja nur 10 Stufen http://de.wikipedia.org/wiki/Poker#Kombinationen. Da kannst du ja einfach berechnen, wie groß noch die Wahrscheinlichkeit ist, dass man eine erreicht. Wenn beide eine erreichen können, dann halt noch wie groß die Wahrscheinlichkeit ist, dass einer ein höheres Entscheidungskriterium hat. Aus all den Wahrscheinlichkeiten ergibt sich dann diese Equideingdsda.
-
Das klappt so vorne und hinten nicht. Probier's Mal zu implementieren, dann siehstes.
-
Nicht durchprobieren.
Sondern
http://de.wikipedia.org/wiki/Wahrscheinlichkeitstheorie#Bedingte_Wahrscheinlichkeit
usw.Oder was ist das Problem.
-
Auf CodeProject.com gibt es einige Artikel von Keith Rule, der das in C# umgesetzt hat, vielleicht hilft dir das ja weiter.
-
Ja, die habe ich schon angesehen und arbeite gerade auch mit dem Projekt. Die Abkürzung über die Binrädarstellung mit Lookup-Tabellen setze ich gerade um und erste Tests zeigen, dass diese Lösung schnell genug ist.
-
Wenn du fertig bist kannst du ja mal ´nen Benchmark fahren und gucken, was schneller ist (C# oder C++). So aus Interesse...
-
Das ginge. Ich muss das dann nur erstmal vergleichbar machen. Aber ein paar einfache Tests sollten schon funktionieren.
Ein paar Änderungen habe ich aber auch drin, im C#-Code sind irgendwelche Fälle abgedeckt, die es gar nicht geben kann usw. Mal schauen!