2017-04-18 2 views
0

私は手の強さを計算する方法を見つけようとしています。具体的には、完全なまたは不完全な場合の対決での勝利の可能性が高いユニークなハンド数ボード(holdem)。ポーカーでハンドの強さを与えるアルゴリズム

私はこれをいくつかの方法で試してみましたが、やや成功しましたが、私は本質的にすべての可能なハンドコンボに対してブランチアウトし、集計結果を比較しているので、プログラムを実行するには、すべてのシナリオで、主人公よりも手の数が多いことがわかります。 TLDRは非常に非効率的で、実行には非現実的な時間がかかります。

しかし、この1つのツールhttp://www.cardplayer.com/poker-tools/odds-calculator/texas-holdemは、はるかに高速に計算するようです。上記のプログラムは将来のすべてのボードの組み合わせについて計算を行っているようですので、不完全なボードを手に入れることができます。私の特定のプログラムでは、私は何らかの特定のポイントで英雄の前に手の数を見つけたいと思いますが、52 * 51のユニークでないスタートハンドのそれぞれに対して上記のプログラムを実行する必要があります。残りの部分の中で、より良い手の数が得られたら、私は手をunqique(すなわち、8c7hと8h7cは87oに縮小される)を減らす必要があります

私の質問は、ヒーローの手の強さと匿名の手の強さを計算するためにそこにある/フレームワーク/リファレンス(Javaで好む)は、実行に1日かかることのない完全または不完全なボードを与えられていますか? at Githubと異なる言語at rosettacodeに:

+0

モンテカルロシミュレーションを使用して、ランダムな手とボードに対して数千のゲームを効率的に演奏します。これは1秒未満です。 – maraca

答えて

0

このスレッドは、多くの情報にStack Overflow Evaluation Algorithms

Code Projecta tutorial on an algorithmとJavaのソースでも

を持っています。

+0

手の力をかなり素早く教えてくれるコードがあります。それはボトルネックがどこにないのですか?私が遭遇している問題は、英雄の先にあるユニークな手の数を計算することです。私はすべての可能なボードの組み合わせをすべて手で比較しなければなりません。そして、その結果を比較してから、ユニークな手に還元してください。 –

+0

この質問では、さまざまな手の確率を探しています。つまり、手札に5を選んでください.4は、例えば、ロイヤルフラッシュで1を選びます。 –

+0

質問は、特定のボードのヒーローよりも多くのユニークなハンドがどれくらいあるかです。固有の開始手は169個あるため、関数は本質的にgetHandsAhead(Hand heroHand、board currBoard)int(0-168を返します) –

1

私は男のポーカー種類のあまりないですが、あなたはコース全体についてあまりにもあなたを助けるためにMIT、ボーナスinfographicからpoker theoryで専用のものを、ThePokerBankサイト面白いかもしれません。

この問題に取り組むために取ることができる戦略は、Statiscal分析に関するかなりの知識が含まれていますが、他のポーカーアルゴリズムが少しうまく機能する理由の1つは、一連のforループの代わりにベクトル化の計算の一形態。私はoctave/MatLab/Rのような言語がこの戦略を一括操作するのを知っています。

幸運を楽しみましょう!

関連する問題