このブログ内を検索可能

2024年6月24日月曜日

カジプロブラックジャック攻略(3) 各見せカードによる期待値

降りるは期待値0.5、倍掛けは1枚分引くが期待値としては変わらず1枚引いた後の枚数の確率分布をディーラーの見せカードに対する確率分布と対応させればよいので簡単。

ただし次々にカードを引いて行くものは、例えば{6,7}という組み合わせが初期の場合、2を引いたら{6,7,2}で合計15、8を引けば{6,7,8}で合計21、とさらにその先のパターンまで読まなければならない。すなわち合計13での期待値には合計14,15…21の期待値が必要で、エースが絡むものとそうでないものに分けて21の期待値から帰納的に計算しなければならないことが分かった。

具体的には「Aを含む19」の状態では、1を引けば「Aを含む20」の期待値、2を引けば「Aを含む21」の期待値、3を引けば「Aを"含まない"12」の期待値…10を引けば「Aを"含まない"19」の期待値が必要となる。
「Aを含む20」の期待値はまたそれに付随してその上位の期待値が必要になり、結局の大本は「21」の期待値に行きつく。
このようにして計算できるものから順次計算していき、降順で(実際はもう少し複雑だが)それぞれのAを含むまたは含まない状態の期待値を順次算出していくスタイルになる。

簡単な例は「Aを含まない20」での状態で、1/13の確率で21となる。それ以外12/13の確率でバーストとなるので、期待値はあらかじめ計算されたディーラーの見せカードの確率分布に従いそれぞれのパターンで勝率を計算して、例えばディーラーのある見せカードnでのBJ率が0.05としてバースト率0.50と仮定すると21の数値では、ディーラーに勝てる確率は0.95で通常の21では2倍のオッズなので期待値1.9、引き分けの確率は0.05でオッズは1なので0.05ということで期待値は1.95となり、100BETに対して平均195WINが期待できる計算となる。ただし確率1/13なので実際は1.95/13=0.15程度になりそのまま(=ステイ)の方が期待値は高い(これも確率分布に照らし合わせれば求められる)結論を得る。

次に「Aを含まない19」での状態では1/13の確率で「Aを含まない20」になり、1/13の確率で「Aを含まない21」、それ以外でバースト。
そして「Aを含まない20」での期待値最大は、先ほど求めた「ステイ」であり、「Aを含まない21」は明確に「ステイ」である。このように前に計算した期待値を順に使用していく形となるのがこの計算の特徴である。いわば高校の漸化式。


ここでそのさらなる詳細な原理を書くには結構ややこしいので割愛するが、とりあえず結果はそれっぽいのが出た。確実に計算があっている保証はないが、予想通りの値は出ているし内部におかしな点もないはず。

実はカジプロの攻略wikiにも同じ考察がされているのだが、我の手法とせっかくなので比較しようと思っている。ただ1日足らずで作った即席プログラムなのでこっちの方が間違っている可能性も否めないが、期待値の数値つきで出来上がったので確認する。
そしてその総合の期待値が1を超えればこのゲームは「勝てる」という結論を得、無限にチップを理論上は増やせてRMTで金を稼ぐ1手法となる。

そして結果は以下。wikiのものと勝負か降りるかあたりはほぼ完全に一致した。
なお倍掛けに関してはトータルで増える枚数(差分)ではなく期待値(割合)で計算している。そのため倍掛けの結果が若干異なっているものかと思われる。
参考:ブラックジャック - カジプロ攻略wiki | Gamerch
この計算は漸化式などを用いてそれなりに煩雑な計算だったため、朝からちょこちょこやって丸1日近くかかってしまった。しかしとりあえずおそらく最適解っぽいものを探し出せたのでこの手法に従ってプレイを自動化すればよい…といいたいのだが。

期待値は0.972(97.2%)

ということでこの最適化の手法でもやはり負けるように設定されている。なおルーレットは単純に36/37=0.97297なので97.3%となり、ルーレットとほぼ同じ期待値になってしまう。

結論として、プログラム構築化によりwikiの最適解を自ら再発見した…がやはり勝てないゲームだということが確定したのでブラックジャックRMT作戦は失敗ということになる。
Q.E.D


なお我が購入しているRMT業者はテキサスホールデムで勝っているようである。テキサスホールデムについては我はあまり仕様を知らないが、なんか手元のカードと中央のカードとあわせてポーカーのように強い役を作るとかいう雰囲気のゲームらしい。
このゲームはプレイヤーとの勝負なので、ディーラーが絡まないゲームなのでもしかすると勝てるのかもしれない。

ということでまた暇なときにテキサスホールデムの場面別最適化プログラムを構築してそれで勝てるのならばエミュレーター上での自動化まで落とし込むところまでは行きたい。
プレイヤーとの勝負ということになるが我はカジプロ初心者なので圧倒的に経験は不足しているが、データと戦術で(どこかできいたような)勝負する。

ちなみに現時点であのRMTを行うために稼働させているPCは最大で19台。カジプロで必勝法を見つければただちにエミュレーター複数×19台を起動させて無限量産体制に入りたいのだが…。(ただし過疎っているとお互いがお互いのアルゴリズムで勝負する意味のない戦いになる可能性がある)
リバーシもほとんどのパターンで負けることが多いので、カジプロ上級者に勝つにはやはりコンピューターなのである。

現在のRMTがくたばったときの万が一の場合を考慮して一応カジプロで早めに対策を考えているが、当面の間は大丈夫そうなので安心。月100万円ももはや間近。

余談だが2日前は岩国の錦帯橋(激すき)と宮島(ほとんど外国人&激混み)に行った。同級生は金曜日から大学にショッキングピンクのスーツケースを持ってきていて博多に行っていたようであるが、当然ながら我は博多には何度も行ったことがあり、博多のカービィカフェで3回食っている。今日博多通りもんの袋をかかえて近くの仲の良い女子とシェアしていたとみられる。旅行自慢をしているようだがそのはるか格上の(=試験周辺以外ほぼ毎週旅行している)存在を忘れているようだが
なお我のおすすめの博多土産は苺フロマージュである。スペースワールドはなくなったので残念。ただし最近は博多はあまりレアではないのであまりお土産は買わないと思われる。買うならやはり佐賀(みかん、佐賀錦)や長崎(カステラ)のお土産。
しかし我も近日中に博多に行くことを忘れてはならない。というのもみぞしょくチャンネルやもっかいチャンネルでおなじみの荒尾のグリーンランドおよびサープラ荒尾、そして佐賀も探索して佐賀錦を喰い、長崎も見て佐世保バーガーを喰ったりハウステンボスに行ったりしながらご当地ベアを回収しようと考えているからである。ただし休みが全然取れないので夏休みに行かざるを得ない。夏休みは九州を見て回り、さらに北海道からの東北再訪も考えている。






カジプロブラックジャック攻略(2) 見せカード毎のディーラーの目期待値

 先ほど初期カードをランダムにして(無限デッキと仮定する)ディーラーの数値分布を行ったが、これの1枚目とその場合の目分布の関係を確認すれば各カード毎の期待値が分かる。

ただしここで注意すべきは、例えば見せカードが1~9と10の数値は明らかに10の方が発生する可能性が高いため、サンプル数では10の方が多く集まるということであるが、1~9を十分な数サンプリングすればおのずと10も十分な数になるのでそれでいく。

その結果、それぞれ見せカードが1~10それぞれの場合でのディーラーの目分布は以下。

やはりA(1)が見せカードの場合はBJの可能性がずば抜けて高い。というのもブラックジャックになるためには10~13の4/13で成立し、かつそうでなくてもまだ特定のカードでBJの確率が加算されるからである。そしてバーストの可能性も明らかに低い。
他には20になる可能性が高いのはやはりもともと10が見せカードであるというのも理にかなっている。

このグラフを見ても明らかに相手の見せ札がA(1)ならば他のパターンより厳しいことが分かり、見せカードが6のときに最も期待値が高そうな雰囲気があるのもわかる。(17以上で止めるため、6の場合は実際は16の可能性が高くその場合のバースト率は8/13とかなり高率だからである)

ディーラーのカードを引くパターンはプレイヤーの数値にかかわらず(無限デッキを仮定しているので)、最初の見せカードの時点でディーラーの目の確率分布は確定する。
すなわち、あらかじめここの確率をより詳細に計算しておくことで以後の確率計算や統計で正確な値が出やすいということになる。
100000回で6秒かかったので、1億回でおそらく6000秒。現実的な回数としては1億回シミュレーションではないかと思われる。

そしてこれを計算させている間に、プレイヤー側の戦略で結果がどう変わってくるかのプログラムを構成していくことにする。








カジプロブラックジャック攻略(1) ディーラーの目分布

 アニマのマジカルマインのシミュレーションは本稼働まで特に急ぐ必要もないので後回しにする。それより現在はカジプロでチップをRMTで数千万購入しているので、なんとか自力で増やせないかと考える。継続的に売れるのならばおそらく必勝法があるのではないかと思ったためである。

そこで我はブラックジャックに目を付けた。他はルーレットなどはペイアウト率100%未満に収束するのは明らかであるし、リバーシは過疎かつ勝利チップが少なく割に合わない。ポーカーなどはやはり長く見て勝てないようになっている。

しかしブラックジャックはプレイヤーが倍掛けや降りたり、相手の手札が見えたりなどこちらの介入要素が大きく、しかもディーラーは16まではカードを引くが17以上ではカードを引かないことが分かっている

それで攻略サイトを見てみると我の考えていることはすでに実践されていたようで、どのときにどんな行為をとれば期待値を最大化できるかが書かれている。

ただ我としては実際に自分でチェックしてみないと気が済まないうえ、手作業でやるのは考えられないのでもしペイアウト率が100%を超えるならば自動化も組む。

しかし自動化前にペイアウト率がどうなるのかを判定しなければならないので、やはりmathematicaでこれを行う。アニマロッタに比べてかなり簡単なプログラムで出来るとみている。

というわけでまずディーラーが例えば初期カード{1,4}でどのような最終結果になるかを確率分布で表記してみた。



16以下は起こらない、というのは16以下なら引くというディーラーの特性による。27以上が起こらないのは16でどれだけ大きい数を引いても最大10なので26以下で、また17以上ではそれ以上ひかないためやはり27にはならないからである。

例えばこの状態だとディーラーは32.7%の確率でバーストすることもわかる。

またちょうど21になる確率は13.5%と案外高め。


ここから、最初に配られるカードをランダム化すればディーラーのカード数値の分布が得られる。

この中でブラックジャックの確率を最大化するカットオフ値は21ではあるものの、その分バーストする確率は最も高くなる。すると一見どれが最適かはわかりづらい。

そこでバーストする確率で見てみると(試行10000なのでそこまで正確ではない)

12以上で終了…0%

13以上で終了…3%

14以上で終了…8%

15以上で終了…13%

16以上で終了…21%

17以上で終了…28%

18以上で終了…38%

19以上で終了…48%

20以上で終了…62%

21以上で終了…82%

となり、まだ17が最適とする理由が不明。

なのでどういう基準をもって17とカットオフ値としているかは不明だが、この話は本質的ではないので流すとして、次にプレイヤーの戦略とディーラーのカードの大小を比較する話にうつる。