monte‑carlo GitHub

カジノゲームの数学とシミュレーション

「なんとなく勝てそう」を
自分の数字で潰す。

ブラックジャックとバカラを、モンテカルロと厳密計算の両方で解いたリポジトリです。 このページで動いているのは 説明用に書き直したコードではなく、10億ハンドを回したのと同じエンジンを WebAssembly にしたものです。

0.2656%6デッキ S17 DAS LS RSA のハウスエッジ
18/22本から写さずに再導出したインデックスの一致数
−0.024%最適カウントで上位0.15%だけ狙ったバカラのエッジ
+0.69ptミス率1%あたりのハウスエッジ増加

エンジンを読み込んでいます…

遊ぶ

打つたびに採点されます。間違えたら、ベーシックストラテジーの手とその1手で何単位損したかが出ます。損の額は厳密計算器が出しています。

数える

カードを流します。ランニングカウントを頭の中で追ってください。1デッキ数え切って 0 にならなければ、どこかで落としています。

ルールを測る

ルールを切り替えて、ハウスエッジがいくら動くかをその場で計算します。厳密計算はスプリットなしの条件で一瞬、実際のルールはブラウザ内でモンテカルロを回します。

この卓のハウスエッジ ルールを選んで「この卓を測る」を押してください
この卓のベーシックストラテジー表を見る(エンジンが生成しています)

この卓で勝てるか

ルールと資金を決めると、ハウスエッジ → ベットランプの導出 → 1単位の金額 → 時給 → 1σ までの時間まで通しで判定します。ランプは推測ではなく、平ベットの校正走行から導出したものです。

判定 条件を選んで「判定する」を押してください

ブラウザ内では 1000万×2 ラウンドなので、CLI の2億ラウンド版よりぶれます(3σ の幅を併記しています。時給は測ったエッジの2乗に比例するので、幅もエッジ自体の2倍あります)。条件どうしの比較には十分ですが、1つの数字を額面で受け取らないでください。前半でランプを導出し、後半の別のカードで値付けしています。同じ標本で導出と評価をすると、最適化器が自分に都合よく見えるランプを選ぶぶんだけ高く出るためです。ヒート(バックオフ)とテーブルマックスは一切モデル化していません。これは「数学的にこうなる」であって「これで稼げる」ではありません。

バカラ

バカラは列挙で完全に解けます。近似はどこにもありません。8デッキ全体の確率が数ミリ秒で出ます。

なぜカウントが効かないのか

シューから1枚抜いたときにエッジがどれだけ動くか(Effect of Removal)を全ランクで計算します。ブラックジャックの Hi-Lo が 1TC あたり 0.5 ポイント動くのに対して、こちらは桁が違います。

わかったこと

  1. ブラックジャックは条件が揃えば勝てる。揃わなければ勝てない。

    Hi-Lo とベットスプレッド、逸脱インデックスを全部入れても、6:5 の卓ではマイナスのままです。6:5 は 1.36 ポイントを一発で持っていくのに、カウンティングの傾きは +0.5%/TC しかない。ベットを上げる価値のあるカウントが存在しないので、最適化器はフラットベットを返します。実際に判定してみてください

  2. ペネトレーションがすべてを決める。

    同じルール・同じスプレッドで、カットカードの位置だけを変えました。0.50 でエッジは消え、0.90 で SCORE は $32.77。ルールの良し悪しより重い

  3. バカラは、最適なカウントを自動導出しても勝てない。

    除去効果から最適な線形カウントを導き、上位 0.15% の局面だけを狙い撃ちして20億クー回しました。それでもバンカーは −0.024% ± 0.053%。有利なシューは実在するのに、線形カウントでは届きません。

  4. 唯一の穴は EZ Baccarat の Dragon 7。

    同じ導出をサイドベットに当てると符号が反転します。TC ≥ 2 でエッジ +7.47%、シューあたり 7.4ベット。ただし N0 は 7,683ベット=1,000シュー超で、分散が大きすぎます。

  5. 卓の看板に書いてあるルールは、思ったほど効かない。

    サレンダー無し・DAS 無し・H17 は、どれもハウスエッジを 0.1〜0.2 ポイント悪くします。しかしカウンターの時給への影響は $15 → $10 前後。効いているのはペネトレーションとスプレッドで、その2つはルールではなく自分の選択です。どこに座るか、どこまで広げるか。上の判定で確かめられます。

  6. 良い卓でも、答えが出るまで254時間かかる。

    6デッキ・ペネトレーション85%・スプレッド 1-12・資金 $10,000 で、時給 $26。ただし N0 は 25,000ラウンド=254時間。それより前の勝ち負けはほぼ運です。しかも 20回に1回は $10,000 を失います。

  7. 卓を選ぶ前に、自分の正答率を上げるほうが効く。

    ミス率 1% でハウスエッジは 0.25% → 0.94%。正答率 98% で打つのは、3:2 の卓を 6:5 に変えてしまうのとほぼ同じです。

  8. よく引用される数字が2つ間違っていた。

    バカラの Player 勝率としてよく載っている 0.446274 は、3つ足すと 1.000027 になります。正しくは 0.446247。インシュランスの「16/49 で −2.04%」はシングルデッキの数字で、6デッキでは −7.4% です。

数字はすべて再現可能です。シード・ワーカー数・試行回数・git revision が結果ファイルに埋め込んであります。 詳細は リポジトリdocs/results/ を見てください。

このサイトは数学とシミュレーションの学習・研究目的です。日本国内からオンラインカジノで賭博を行う行為は刑法の賭博罪にあたります。 実験はすべてシミュレータ上で完結しています。