カード1枚、38個のボール
このゲームは1人でプレイする75ボールビンゴです。エンジンは5×5のカードを配り——B列には1〜15、I列には16〜30から5つずつの数字、といった具合に——中央のマスをフリーとしてマークし、75個中38個のボールを引きます。すべての行、すべての列、両方の対角線がラインとなり、合計12本。配当はその12本のうちいくつが完成したかだけで決まります。Designing Bingoでは、なぜ38個のボールなのか、なぜその7段階の配当なのかを解説し、100万ラウンドのシミュレーションから得たライン数の分布を引用していました。本記事ではそれを厳密に計算します。
ENGINE-VERIFIEDBingoEngine.kt: DRAWS = 38, FREE_CELL = 12, LINE_PAY100 = {1: 150, 2: 400, 3: 1200, 4: 3000, 5: 10000, 6: 20000, 7: 50000} (total return in hundredths; seven or more lines all pay ×500), LINES = five rows, five columns, two diagonals. play(): cursors 0–24 build the card column by column (five pool-hop draws from each column’s fifteen numbers, the centre draw consumed then overwritten by the free star), cursors 25–62 draw the 38 balls from 1–75 by the same pool hop; each cursor is one HMAC-SHA256 of “clientSeed-nonce-cursor” keyed by the server seed. The client mirror is playBingoRound() in bingo/derive.ts.
正確な計算を可能にする事実が1つあります。カードには24個の実数字があり、そのうちどれがマークされるかは、引かれた38個のボールだけに依存します:特定のk個のカード数字がマークされ、残りの24 − k個がマークされない確率は、C(51, 38 − k) ÷ C(75, 38)で表され、これはどのカードレイアウトでも同じです。したがって、ライン数の分布は、2²⁴ = 16,777,216通りのマークパターンすべてにわたるその重みの合計となります——数秒の計算で済み、サンプリング誤差もありません。
すべてのライン数とその配当
| ライン数 | 確率 | 〜分の1 | 配当 | 還元率の割合 |
|---|---|---|---|---|
| 0 | 62.82% | 1.6 | — | — |
| 1 | 28.60% | 3.5 | ×1.5 | 42.89% |
| 2 | 7.059% | 14.2 | ×4 | 28.24% |
| 3 | 1.288% | 77.6 | ×12 | 15.46% |
| 4 | 0.2007% | 498 | ×30 | 6.02% |
| 5 | 0.02913% | 3,433 | ×100 | 2.91% |
| 6 | 0.004060% | 24,600 | ×200 | 0.81% |
| 7以上 | 0.000645% | 155,000 | ×500 | 0.32% |
| 合計 | 100% | 還元率96.66%・的中率37.18% |
還元率のシェア=確率×配当を、ベット額に対する割合で表したもの。設計ノートのシミュレーション値(62.9/28.6/7.05/1.27/0.20/0.03%、還元率≈96.5%、的中率37.1%)はこれらと誤差の範囲内で一致しており、正確なハウスエッジは3.34%です。
この表で際立つ点が2つあります。まず、資金の大半はペイテーブルの下層にあります。7枚中2枚で的中する1ライン×1.5は還元率の43%を占め、1ラインと2ラインを合わせると71%になります。このゲームの看板であるx100以上の段は、合わせても還元率のわずか4%です。次に、段階は意図的に急勾配になっています。ラインが1つ増えるごとに確率はおおよそ5〜7倍稀になり、配当はおおよそ3倍になるため、段ごとの還元率は一定ではなく、レア度とともに減少していきます。これは設計上の選択であり——Kenoも同じ手法を取っています——これによってカード全体の還元率を96.66%に保ちながら、レアな当選数を印象的なものに保っているのです。
| ライン数 | 確率(1/N) |
|---|---|
| 7 | 179,000 |
| 8 | 130万 |
| 9 | 1210万 |
| 10 | 6750万 |
| 11 | 不可能 |
| 12(すべてのライン) | 26億7000万 |
11は不可能です。なぜなら各マスは1つの行と1つの列に属しているため、未マークの数字が1つあるだけで必ず少なくとも2ラインが崩れるからです。ライン数は常に2つずつ失われ、1つずつではありません。10ラインは両方の対角線のうち片方が未マークの数字1つで崩れている状態、12は24個の数字すべてが出た場合で、C(51, 14) ÷ C(75, 38)です。
フリースターと平均的なカード
あるボールが特定のカード上の数字に当たる確率は38 ÷ 75 = 50.67%ですが、ラインを完成させるにはそのすべての数字が必要であり、抽選は非復元抽出です。中央を通らないラインは38個の中から特定の5つのボールが必要です:38 ÷ 75 × 37 ÷ 74 × 36 ÷ 73 × 35 ÷ 72 × 34 ÷ 71 = 2.908%、34.4回に1回です。フリースターを通るラインは4つだけ必要です:6.073%、16.5回に1回です。12ライン中4ライン(中央の行、中央の列、両方の対角線)がスターを通るため、カード上で完成するラインの期待値は8 × 2.908% + 4 × 6.073% = 0.476です。
| マーク済み | 確率 |
|---|---|
| 8 | 2.44% |
| 10 | 11.20% |
| 12 | 19.46% |
| 13 | 17.96% |
| 14 | 13.07% |
| 16 | 3.33% |
| 18 | 0.30% |
| 20以上 | 0.0095% |
超幾何分布:C(24, k) × C(51, 38 − k) ÷ C(75, 38)。平均は12.16マークで、平均的なラウンドではカードは半分ほど埋まる形になる。これが1ラインは珍しくなく、3ラインが珍しい理由だ。
マーク数の表は典型的なラウンドのありのままの姿を示している:24個の数字のうちおよそ12個がマークされ、グリッド全体に散らばる。問題は、そのうち5個がたまたま一列に並ぶかどうかだけだ。14マーク以上は4ラウンドに1回起こるが、それでも通常は多くても1〜2ラインしか揃わない。3ライン揃うカード(確率1/78)は、ほぼ常にマークが異常に多いカードではなく、配置が異常に幸運だったカードである。
ライン数と配当が固定されているため、1ラウンドごとの振れ幅も固定されている:1ラウンドの結果の標準偏差はベット額の3.26倍だ。1ユニットのベットを100ラウンド行った場合、期待損失は3.3ユニット、振れ幅は約33ユニットなので、30ユニットの増減で終わるセッションは普通のことだ。破産確率(Risk of ruin)は、これを特定の資金が通常どれくらい持つかに換算してくれる。
カードの検証
- ラウンドのフェアネスパネルから、公開されたサーバーシード、クライアントシード、ノンスを取得する。
- カーソル0から24について、サーバーシードをキーとしたHMAC-SHA256を「clientSeed-nonce-cursor」に対して計算し、最初の8バイトを2⁶⁴に対する割合として取り、カードを列ごとに埋めていく:各抽選では、その列の15個の数字からindex floor(u × remaining)を選び、最後の数字を空いた位置に入れ替える。セル12はフリースターになる。
- カーソル25から62についても同様に1〜75のプールから38個のボールを引き、カードにマークを付け、12ライン中の完成ラインを数え、上記の表から配当を読み取る。
オープンソースの検証ツールのbingoコマンドは、この3つのステップを1回の呼び出しで行う。レイアウトとボールは1組のコミット済みシードペアから生成されるため、ボールが判明した後でカードを配ることはできず、カードに合わせてボールを引くこともできない——これが上記の正確な分布が前提としていることであり、コミットメントによって検証できることだ。
よくある質問
ビンゴラインが揃う確率は?
この38-of-75のソロカードでは、37.18%のラウンドで少なくとも1ラインが完成します:ちょうど1ラインが28.60%、2ラインが7.06%、3ラインが1.29%、4ラインが0.20%、5ラインが0.029%、6ラインが0.0041%、7ライン以上は155,000回に1回です。
ソロビンゴのハウスエッジは?
正確に3.34%です:還元率はベット額の96.66%で、これはシミュレーションではなくすべてのマーク パターンを対象に計算されたものです。デザインノートのシミュレーション値96.5%はこの数値の推定値でした。
なぜフリーセンターはボール1個分の価値があるのか?
中央を通るラインは5つではなく4つの抽選番号で完成するため、2.91%に対して6.07%の確率で完成します——およそ2倍の頻度です。12ラインのうち4ラインが中央を通ります。
11ラインを完成させることは可能か?
いいえ。すべてのマスは1つの行と1つの列に属しているため、未マークの番号は必ず同時に少なくとも2ラインを崩します。つまりラインは2つずつ失われ、ちょうど1つだけ失うことはありません。カウントは10(対角線以外で未マークが1つ)から12へと飛びます。12ライン全完成は26億7千万枚に1枚の割合で起こります。
カード上で通常いくつの番号がマークされるか?
24個中、平均12.16個です。ちょうど12個マークされるのが最も可能性の高い結果(19.5%)で、20個以上は約10,500ラウンドに1回起こります。
どの配当が還元率の大部分を占めるか?
×1.5のシングルラインで、これは28.6%のラウンドで配当され、96.66%の還元率のうち42.9%を占めます。1ラインと2ラインを合わせると71%になり、×100以上はすべて合わせて4%です。
ビンゴラウンドを検証できますか?
はい。公開されたサーバーシードを鍵として「clientSeed-nonce-cursor」に対するHMAC-SHA256を各カーソルごとに1つずつ計算します:カーソル0〜24でカードが配られ、25〜62でボールが抽選され、検証ツールのbingoコマンドが両方とラインカウントを再現します。
出典・参考資料
- Betkyoエンジンソース、ハウスサービス: BingoEngine.kt — DRAWS、FREE_CELL、LINE_PAY100、LINES、play()(カーソル0〜24での列優先プールホップによるカード生成、カーソル25〜62でのボール抽選、完成ライン数によるpay100); OriginalBingoService.ktの決済処理
- Betkyoエンジンソース、クライアント側ミラー: playBingoRound()、bingo/derive.ts内のBINGO_LINE_PAY100とBINGO_LINES
- 本記事のために行われた厳密な計算:24枚のカード番号の2²⁴通りのマークパターンをそれぞれC(51, 38 − k) ÷ C(75, 38)で重み付けし、完成ライン数ごとに合計したもの;シングルラインの確率38·37·36·35·34 ÷ (75·74·73·72·71)および38·37·36·35 ÷ (75·74·73·72);超幾何分布によるマーク数の分布;ラウンドごとの標準偏差
- Betkyo プロバブリーフェア検証ツール(GitHub、MITライセンス):bingoコマンドはserverSeed、clientSeed、nonceからカード、ボール、ラインカウントを再現します
この記事で紹介するゲーム