このブログ内を検索可能

2024年7月10日水曜日

テキサスホールデムの確率(7) 処理回数の最適化

 同じパターンに対して役を計算するのは面倒なので、判明している2~7枚のカードの組になる確率をすべての2~7枚のパターンに対して順次計算していく方式に切り替える。

何を言っているのかわからないと思うし自分でも何を書いているかわからないので具体例を提示する。

例えば{{1,1},{1,2},{1,3},{1,4},{1,5},{1,6},{1,7}}の組があるとすると、すでにこのカードの組で形成される最高役は定義済み(柄1のストレートフラッシュ数字7)。

そしてこのカードを形成しうる初期パターンは、最初の2枚提示段階ではこの集合から2つの要素を持つ部分集合で{1,1},{1,2}から{1,6},{1,7}が該当し、残り5枚がこれになるのは50枚から5枚が選ばれる確率なので1/50C5になり、

最初の2枚+3枚提示では5つの要素を持つ部分集合で7C5通りでそれらがこの結果に行きつく確率は1/47C2となる

これをすべての52C7通りについて実行すればよい。

そうすると全フェーズにおいて確率を求めることができ、おそらく処理時間もましになるはず。

そのためには{1,1},{1,2}をID=1とし、{4,12},{4,13}をID=52C2とするような変換が必要だがこれは二項係数を多項式で計算させておいたほうがはやいのでそれでいく。

なお、それぞれのカードの組に対して各役の確率を示す配列を作ろうとすると、例えば7枚判明していたら52C7個の要素に関して考え得るすべての役448個となるのでデータの個数は59935482880個となり、600億個にも膨れ上がる。

こうなるとPCのメモリがある程度良性能でも厳しいので、各要素に代入あるいは加算するのは勝率にしなければならない。

しかしながら、勝率を計算するためには現在の7枚の組に対して残り45枚から7枚を選ばせる必要があり、この7組はすべて出現確率が等しいのだがそれらすべてに対して役を判定していると、45379620通り計算しなければならず、それをこちらのパターン分すなわち133784560通りに対して行うので6071092494667200通り(6071兆通り)になり、一生終わらない見込み。

よってここでは各7枚の組を持つカードに対して、相手の7枚の確率分布はこちらの手が分からないとする場合の7枚として一律に扱うこととする。

ただおそらくその操作もすさまじく時間がかかる。何しろそれぞれのカードに対して最大の役の判定(7枚中5枚を使うので21通り)を行うからである。ここではノーペアとワンペアなどのそれぞれのパターンの生成率は、最大の役をとるという制約上同様に確からしくないので逐一計算が必要になる。

順序としてはメモリの関係上先にこちらの計算が必要であり、もし何十日もかかりそうならランダム生成数十万回程度で計算する。

→30秒で1000回。133784560回なので133784*30でおよそ4000000秒。すなわち65000分となり、1100時間。およそ40~50日に相当するので、前のビンゴバルーンの例と比較するとまあ待てない機関ではないが、そもそもそれを求めたところでその確率分布が厳密な数値として活きる場合がない。というのも52枚から7枚を相手が選んでことに対して、自身の見えている手が0枚ということはありえないからである。(初期から2枚オープン)

しかしこれはいろんな状態に対して近似値を与えるのでこのパターンを用いているに過ぎない。…がそもそも近似値ならばそこで厳密値を求める価値はほぼない。よってランダムにして回数をある程度増やすことにする。

およそ1日くらいで終了させたいので、1分で2000回、1時間で120000回、1日で2880000回。明日の昼くらいにはいい感じになってほしく、途中で中断することもできるので一応10000000回に設定してみる。

この結果が出れば、すべての自身のパターン2,5,6,7組のカードに対してこれと役の強さを比較し勝率を各パターンに順次代入、加算していく。

なおカジプロは明日ついにVIPとなる。自分で増やせないうちはやはりRMTというのは非常に良いものである。1日30000円収入が入ると仮定すれば5000万チップ3000円なので毎日5億チップは手に入る。


どうでもいい話だが、7月9日にクレーンゲーマー(tiktokなどを駆使し昨年くらいから登録者数千人から急に100万人を記録したクレーンゲーム系youtuber。すでにもっかいちゃんねるやKTGを超え、いよいよTOPであるつるなかに迫る勢い。我もクレーンをするが登録者は数百人の雑魚である。彼らは我の1000倍はすごいということである)である「だぶるあっぷ」氏がトップラン東大阪の一番奥にあるトリプルキャッチャーメガダッシュの筐体でカービィ(むてきキャンディ)をGETしている動画があった。

そして千日前線でそれと同じカービィだけを袋に入れずに抱えて持っている客を同日に見かけた。まさか…?

いやしかしトップランから千日前線に乗っているのは不自然で、通常ならバスで若江岩田に行くか長田or新石切方面に抜けるはずで、前者ならその動きはありえない。とすると中央線経由で谷町4で乗り換えたのか…?

いずれにせよ信憑性はないがぬいぐるみを素でかかえてしかも同日に同じ景品というのはなかなか珍しいものである。ただトップラン東大阪はあの筐体から帰る途中右側に大きな袋が置かれているので素で持って帰るのも珍しい。

我もぬいぐるみを素で持って帰るのは最近では岩手の万SAI堂北上でかばんに直接ぶちこんだときくらい。直近の遠征先でのぬいぐるみは広島新井口のアルパーク北棟のカービィであるがあれは袋に入れた。

なお生駒山上の動画もあがっており、あの風船の動画だけで隣が入り口かつ特徴のあるぼろい床であの場所ということが瞬時に分かった。うつっているエアホッケーややっていたスマートボールは我もちょっと前プレイした。

特にだぶるあっぷ氏はトップラン東大阪でのプレイ動画が多く(拾円遊戯場、バケツ回転設定が特異的で前者はアイビス太子、ままんまるしぇ高鍋、縁日堂とここくらいしか該当せず、バケツ回転設定はアイビス太子とここだけの特徴的な設定。うーさんが考案しているのだが我はうーさんに会ったことがある。しかしながらビッグクリアフィギュアをめぐって敗北したが)プレイ場所を同定できる動画がいくつか存在する。

ちなみにトップラン東大阪は以前はかなり取れた印象だが最近は取れにくくなったのでほとんど行っていない。あとあそこの問題点は、景品の入荷が結構遅れるというところ…。レトロ感が出ていて雰囲気はいいのだが…。