Bethropic

ハイロー・カードゲームのランク別オッズとハウスエッジ ― 正確な次カード確率、各ボタンの配当、そして安全サイドが一番高くつく理由

cedartinder閲覧 8
🌐 この投稿の原文はEnglishです· AI翻訳原文を見る

エンジンが実際に配っているもの

ハイローは一つの問いを13通りに問いかけるゲームだ。カードがテーブルに置かれ、次のカードがそれより高いか低いかを当てる。当たれば配当がポットに掛けられ、新しいカードで同じ問いが続く。追跡すべきシューもなければ、サードカードルールもディーラーもいない。そのためこのゲームは、料金表が1ページに収まる数少ないカジノゲームの一つであり、コードを読むとボタンの意味の理解が変わる数少ないゲームの一つでもある。

エンジン検証済みhilo/hiloApi.ts:32 ― カードのランクは `Math.floor(rng() * 13) + 1` で、13種類の等確率のランクのうちの一つだ。スートも同時に引かれる(hiloApi.ts:30〜34)が、精算コードがそれを読むことは一切ない。hiloWinSet()(hiloApi.ts:122〜142)の勝ちセットはランクの集合だ。ペアやフラッシュ、連番はこのゲームには存在しない。

ランクはエースが最低、キングが最高で、1から13まで並ぶ。すべてのカードが独立した一様分布からの抽選であるため、すでに配られたカードが次に来るカードに影響を与えることはない ― どのランクも「使い果たされる」ことはなく、低いカードが5回続いたからといって高いカードが出る確率が上がるわけではない。盤面上部の履歴バーは記録であって予測ではない。

エンジン検証済みhilo/hiloApi.ts:122〜142、hiloWinSet():中間のランクrでは、「Higher or same」はランクr〜13で勝ち、「Lower or same」はランク1〜rで勝つ ― 現在のランクは両方のセットに含まれる。キングでは2つのボタンは「Same」(ランク13のみ)と「Lower or same」(1〜12)になり、エースでは「Higher or same」(2〜13)と「Same」(ランク1のみ)になる。hiloOdds()(hiloApi.ts:70〜91)は各ボタンを1 ÷ その確率で価格付けし、これはちょうど13 ÷(勝ちセットのサイズ)になる。

この共有ランクこそ、まず気づくべき点だ。2からクイーンまでのどのカードでも、2つのボタンを合わせると13ランク中14ランクをカバーする ― 107.69% ― なぜならタイはどちらを選んでも配当が出るからだ。ここではハウスはプッシュを取らない。その必要がないのだ。両方のボタンの価格は、タイがプレイヤーの勝ちであるかのように設定されており、エッジは全く別のところで取られている。

すべてのコール、価格付けされたもの

ハイローには26種類ではなく、12種類の異なるコールしか存在しない。ボタンは13ランクのうち何個が勝ちになるかで完全に定義され、盤面上のすべてのボタンは以下の12サイズのいずれかに該当する。

12種類の異なるコール:確率、フェアプライス、そしてボタンに表示される内容

勝ちランク確率フェアオッズ表示小数点2桁の切り捨てで失われた分出現箇所
17.6923%13.0000×13.00—エースまたはキングでの「Same」
215.3846%6.5000×6.50—2で下、クイーンで上
323.0769%4.3333×4.330.0769%3で下、ジャックで上
430.7692%3.2500×3.25—4で下、10で上
538.4615%2.6000×2.60—5でLower、9でHigher
646.1538%2.1667×2.160.3077%6でLower、8でHigher
753.8462%1.8571×1.850.3846%7でどちらかのボタン
861.5385%1.6250×1.620.3077%8でLower、6でHigher
969.2308%1.4444×1.440.3077%9でLower、5でHigher
1076.9231%1.3000×1.30—10でLower、4でHigher
1184.6154%1.1818×1.180.1538%ジャックでLower、3でHigher
1292.3077%1.0833×1.080.3077%クイーンかキングでLower、エースか2でHigher

Chanceは13に対する勝ちセットのサイズです。Fair oddsは13÷勝ちセットのサイズで、hiloOdds()が返す数値です。表示されているのはエンジンの小数点第2位での切り捨て後の数値です。5列目は、設定されたハウスエッジを適用する前に、その切り捨てだけでそのコールの賭け金から取られる割合です。

12通りのコールのうち5つは13をきれいに割り切れ、端数処理で何も失いません:×13.00、×6.50、×3.25、×2.60、×1.30です。残りは循環小数で、四捨五入ではなく切り捨てられ、その切り捨ては常にハウス側に有利です——切り捨てであり、最も近い値への丸めではありません。最大の一口は7で発生し、両方のボタンが同じコールになる唯一のカードです:×1.8571が×1.85になり、賭け金の0.3846%が小数点第3位以下に消えます。

この切り捨ては雑なものではありません。支払いは台帳が正確に保持でき、検証者がビット単位で再現できる数値でなければなりません。だからエンジンは一方向に、一か所で一度だけ丸めます——one rounding, not manyで説明されているのと同じ規律です。その選択のコストは小さいですが実在するものであり、価格表に載せるべきものです。

2つの切り捨て、1つのエッジ

Hi-Loのランはコールごとに支払われるわけではありません。積み上がっていきます。正解するたびに、そのコールに記憶されたオッズを累積の積に掛け合わせ、最終的に受け取れる払い戻しは、ハウスの取り分を適用したその積です——取り分はラン全体で一度だけ取られ、コールごとに取られるわけではありません。

ENGINE-VERIFIEDhilo/hiloApi.ts:202–203 — 勝利した各コールごとに `product *= floor2(13 / winSet.size)`、そして `multiplier = floor2(product * ctx.rtp)`。floor2は `Math.floor(x * 100 + 1e-9) / 100`(_shared/serverMath.ts:12–14)です。hiloApi.ts:56–59のコメントには、これがバックエンドのBigDecimal演算を反映していることが記録されています:各勝利ステップのfair oddsは小数点第2位で切り捨てて保存され、ランの倍率は保存されたステップの積に(1 − ハウスエッジ)を掛け、再び小数点第2位で切り捨てられます。

つまり切り捨ては1つではなく2つあります:上の表にあるコールごとの切り捨てと、完成した倍率に対する2つ目の切り捨てです。どちらも切り捨て方向です。ハウスエッジ自体はコードではなく設定であり、ゲームの詳細レコードとともに届きます。そのコールが失敗した場合、クライアントは1%の数値にフォールバックします。

ENGINE-VERIFIED_shared/coinGame.ts:111 — ゲームごとの還元率は /getGameDetail のレスポンスからの `1 − rtpRes.body.rtp` であり、クライアントのフォールバックは `0.99`(_shared/coinGame.ts:92)です。Hi-Loのソース内の計算例(hiloApi.ts:63–64)では0.985が使われています。どちらも以下で価格付けされており、上記の確率はどの設定でも成り立ちます。

1回のコール、そしてキャッシュアウト:各ボタンが実際に返すもの

表示値確率1%設定時の初回コール払い戻しハウスエッジ1.5%設定時
×13.007.6923%×12.871.0000%1.5385%
×6.5015.3846%×6.431.0769%1.5385%
×4.3323.0769%×4.281.2308%1.6923%
×3.2530.7692%×3.211.2308%1.5385%
×2.6038.4615%×2.571.1538%1.5385%
×2.1646.1538%×2.131.6923%2.1538%
×1.8553.8462%×1.831.4615%2.0000%
×1.6261.5385%×1.601.5385%2.1538%
×1.4469.2308%×1.421.6923%2.3846%
×1.3076.9231%×1.281.5385%1.5385%
×1.1884.6154%×1.161.8462%1.8462%
×1.0892.3077%×1.062.1538%2.1538%

ハウスエッジとは、1回正解してからキャッシュアウトするという、ちょうど1回分のコールの流れにおける、賭け金に対する期待損失の割合です:1 − 確率 × 配当。配当列はfloor2(floor2(13 ÷ k) × 0.99)で、これはボタン自体が一連の流れの最初のコールで表示する数値です。

このため、ボタンの表示は注意深く読む価値があります。一連の流れの最初のコールでは、1回限りのカットが同じ動作の中で発生するため、表示が下がります——本来期待される×1.08が×1.06と表示されるのです。2回目以降のコールでは、積はすでにカットされた後なので、同じボタンが再び×1.08と表示されます。あなたの勝率は何も変わっていません。同じ計算の2つの異なる段階を見ているだけです。

そしてここに、誰も予想していなかった結果があります。設定されたエッジ1%はあくまで目標値であり、結果ではありません。端数処理(floor)は、フェアオッズの小数が最も醜い形になるコールに最も強く効くため、1回のコールの実際のコストは1.00%から2.15%まで変動します——ハウスがほぼ確実な×1.06から得る取り分は、×12.87のロングショットから得る取り分の2倍以上です。盤面で最も安全に見えるボタンが、実は押すのに最もコストがかかるのです。

どちらの側がより安く済むか、カードごとに見てみる

カードは常にあなたの前に2つの価格を提示しますが、それらがほぼ等しくなることはありません。これは1%設定で、1回のコールとその後のキャッシュアウトにおける完全な一覧表です。

テーブル上のカードごとのハウスエッジ、1%設定、1回のコール

カード同じかそれ以上同じかそれ以下安い方
A×1.08 · 92.31% · 2.1538%「同じ」×13.00 · 7.69% · 1.0000%より安い
2×1.08 · 92.31% · 2.1538%×6.50 · 15.38% · 1.0769%より安い
3×1.18 · 84.62% · 1.8462%×4.33 · 23.08% · 1.2308%より安い
4×1.30 · 76.92% · 1.5385%×3.25 · 30.77% · 1.2308%Lower
5×1.44 · 69.23% · 1.6923%×2.60 · 38.46% · 1.1538%Lower
6×1.62 · 61.54% · 1.5385%×2.16 · 46.15% · 1.6923%Higher
7×1.85 · 53.85% · 1.4615%×1.85 · 53.85% · 1.4615%Identical
8×2.16 · 46.15% · 1.6923%×1.62 · 61.54% · 1.5385%Lower
9×2.60 · 38.46% · 1.1538%×1.44 · 69.23% · 1.6923%Higher
10×3.25 · 30.77% · 1.2308%×1.30 · 76.92% · 1.5385%Higher
J×4.33 · 23.08% · 1.2308%×1.18 · 84.62% · 1.8462%Higher
Q×6.50 · 15.38% · 1.0769%×1.08 · 92.31% · 2.1538%Higher
K「同じ」×13.00 · 7.69% · 1.0000%×1.08 · 92.31% · 2.1538%Higher

表示されているオッズ・確率・1回のコールとキャッシュアウトにおけるハウスエッジ。1.5%設定では2つの例外が消える。可能性の低い側が高くつくことは決してなくなるが、4、6、7、8、10ではその時両側のコストがまったく同じになる。

パターンとしては、可能性の低い側がほぼ常に安くつくという傾向があり、これはゲームが促す直感を逆転させるものだ。2枚のカードがこの法則を破る。6と8では、可能性の高い側の方が安くなるが、これはゲームの設計上の理由によるものではない。両方のコールは最初の段階で同じ0.3077%を失う。それらを分けるのは2段階目、つまり最終的な倍率に対してである——1%カットに対して×2.16は2.1384に着地し、×2.13に切り下げられて0.3928%を失うのに対し、×1.62は1.6038に着地し、×1.60に切り下げられて0.2369%を失う。7では、両方のボタンが同じコールなので、この問題は生じない。

一様ランダムなカードに対する1回のコールの平均コスト

ボタンの選び方1%設定1.5%設定
常に安い方1.2249%1.6923%
常に可能性の低い方1.2485%1.6923%
半々でランダムに1.5207%1.8639%
常に可能性の高い方1.7929%2.0355%

13枚の等確率なカードで平均化したもの。最初の行と最後の行の差——1%設定で約0.57ポイント——が、1回のコールにおけるボタン選択の効果のすべてです。

これらの行のうち、プレイヤーにとってプラスになる数字は一つもなく、それがポイントです。Hi-Loでうまく選択しても、ゲームの流れが逆転するわけではありません。賭けた金額全体に対するコストが、およそ1.2%からおよそ1.8%の間で動くだけです。この差は本物であり、知っておく価値があります。ただし、次のセクションで説明する差よりは小さなものです。

はしごを登るコスト

キャッシュアウトの判断こそがこのゲームであり、算数が変わるのもここです。コールを重ねるたびに、積は切り捨てられた数で掛けられるため、コールを重ねるたびにまた小さな取り分が加算されます。設定されたエッジは一度だけ課されますが、丸めによるコストは何度も繰り返し課されます。

10枚のカード、常に×1.08ボタン、最後にキャッシュアウト — 1%設定

正解数到達確率倍率フェア倍率ハウスエッジ
192.3077%×1.06×1.08332.1538%
378.6527%×1.24×1.27142.4706%
567.0177%×1.45×1.49212.8243%
1044.9137%×2.13×2.22654.3338%
2217.1883%×5.38×5.81797.5268%
318.3632%×10.75×11.957110.0951%
600.8209%×100.24×121.822217.7161%

完全に92.31%ボタンで行われたラン。「フェア倍率」は(13 ÷ 12)をコール回数でべき乗したもので、フロアなし・設定エッジなしであれば同じランがいくら支払われるかを示す。10コール行は、エンジン自体のデモループを3000万回シミュレーションした結果と照合済み。

セーフボタンで賭け金を2倍にするには10回連続正解が必要で、それはおよそ半分弱の確率で到達し、その時点でハウスの取り分は2.15%から4.33%に上昇している。×100に到達するには60回連続正解が必要で、約122回に1回の頻度で発生し、賭けた総額の17.72%がコストとなる。倍率が上がるにつれてオッズは正直に複利的に積み重なるが、丸め誤差も同様に積み重なる。

×1.85ボタン(7、どちらの側でも)での同様の上昇 — 1%設定

正解コール数確率倍率ハウスエッジ
153.8462%×1.831.4615%
315.6122%×6.262.2676%
54.5266%×21.452.9041%
100.2049%×464.894.7430%

ほぼイーブンオッズで10回連続正解する確率は、約488回に1回です。

どちらの表も、通貨は違えど同じことを言っています。長いランは、長いオッズ1回で大きな数字に到達するより安上がりな方法ではありません。むしろ高くつく方法です。なぜなら、ハウスは一段ごとに取り分を取るからです。唯一の例外は「×13.00『Same』」コールです。1%設定では小数点以下2桁でちょうど割り切れるため、何回繰り返しても設定されたエッジ以上のものは発生しません。これは7.69%の確率で出現します。

スキップと、それが何をしないか

Hi-Loには3つ目のボタンがあります。ラン中であれば、場のカードをコールせずにスキップして別のカードを引き直すことができます——ポットはそのまま、倍率もそのまま、何もリスクにさらされません。

エンジン検証済みhilo/hiloGame.tsx:376–377 — 「このカードをスキップ」ボタンはラン進行中は常に表示されており、hiloApi.ts:193–196では、その処理内容が示されています:新しいカードが引かれ、パスがカウントされ、倍率・勝利数・残高はすべて変更されずに返されます。スキップされたカードはランを失わせません。

これは本当に無料であり、同時に本当に限定的なものです。スキップはどのコールも有利にはしません——同じ13種のカードから引かれる別のカードに置き換えるだけなので、提示される価格表は結局同じ価格表です。スキップで可能になるのは、自分が好む方の安いボタンのカードを待つことだけで、コストはキングの「Same」コールの1.00%からその隣のボタンの2.15%の間で変動するにすぎず、それ以上にはなりません。どんなにスキップを重ねても、このゲームのコールが無料になる手順は存在しません。

また、スキップも盤面上の他の何も、次に出るカードを変えることはありません。各カードは同じ13ランクから独立して引かれるため、たった今スキップした低いカードの連続は、次に出るカードには何の影響も及ぼしません。その直感には名前と長い歴史があります:ギャンブラーの誤謬。

Hi-Loについての正直なまとめは短いものです。確率はボタンが示す通り正確であり、配当はフェアな価格を2段階で切り捨てたものであり、プレイのコストは、最良の1回のコールであれば約1%から、長く上り詰めるランでは二桁台後半まで、どのボタンを押しどこまで進むかによって変わります。どちらがどちらかを知っていればゲームは安くなります。しかしそれでも無料にはなりませんし、エンジンをどれだけ読み込んでも無料にはなりません。

遊Hi-Lo、すべてのコールを検証可能
13のランク、1つの質問、そしてエンジンと照合できる価格表
Hiloへ →

FAQ

Hi-Loカードゲームのオッズは?

各カードは13のランクから均等に引かれます。ランクrのカードでは、「Higher or same」は13分の(14 − r)回勝利し、「Lower or same」は13分のr回勝利します——現在のランクは両側に支払われます。エースまたはキングでは片方のボタンが「Same」になり、13分の1回勝利します。スートは精算に関係ありません。

Hi-Loのハウスエッジは?

それはどのボタンを押すかによります。クライアントの1%設定では、1回のコールに続けてキャッシュアウトした場合、×12.87の「Same」で1.00%、×1.06のほぼ確実なコールで2.15%のコストがかかります。これはエンジンが各配当を小数点以下2桁で切り捨てるため、フェアなオッズが繰り返される箇所でその切り捨てが最も強く効くからです。ボタンをランダムに押すと平均で1.52%になります。

なぜHi-Loのボタンには×1.08ではなく×1.06と表示されるのですか?

92.31%のコールのフェアな価格は13 ÷ 12 = 1.0833で、エンジンはこれを×1.08として保存します。ランの最初の正解コールでは、ラン1回限りのハウスカットが同時に適用されるため、ボタンにはカット後の数値、×1.06が表示されます。2回目以降のコールでは、カットはすでに取られているため、同じボタンに×1.08と表示されます。

Hi-Loでは確率の高い方とロングショットのどちらを選ぶべきか?

1%設定では、13枚のカードのうち10枚で確率の低い方が安い方になります——6と8は例外で、7では両方のボタンが同じ条件になります。常に安い方を選び続けた場合と常に確率の高い方を選び続けた場合とのハウスエッジの差は約0.57ポイントです。どちらの選択もゲームを有利にはしません。

Hi-Loでは長く続けた方が早めにキャッシュアウトするより得をするか?

いいえ。正解するたびに、小数点以下2桁で切り捨てられた倍率が累積倍率に掛けられるため、段階が増えるごとにわずかな削減が加わります。×1.08の正解を10回連続で出すと×2.13に達し、確率は44.91%でハウスエッジは4.33%です。60回連続では×100.24に達し、確率は0.82%でハウスエッジは17.72%です。

Hi-Loでカードをスキップするのは有効か?

スキップは何の代償もリスクもありません——新しいカードが配られ、倍率とポットはそのままです。しかし、代わりのカードも同じ13ランクから出され、同じ配当表が適用されるため、スキップはどの配当を選ぶかを変えるだけです。どのコールであってもハウスエッジを取り除くことはできません。

出典・参考資料

  • Betkyoエンジンのソース:hilo/hiloApi.ts:122–142のhiloWinSet()(どのランクがどのボタンで勝つか、タイは両側に支払われること、AceとKingの「Same」ボタン)、およびhilo/hiloApi.ts:70–91のhiloOdds()(フェアオッズ=13 ÷ 勝ちセットのサイズ)
  • Betkyoエンジンのソース:hilo/hiloApi.ts:32の均一ランク抽選、hilo/hiloApi.ts:202–203のラン累積(各ステップごとの切り捨て、その後積に還元率を掛けて切り捨て)、hilo/hiloApi.ts:56–59のバックエンドミラーに関する注記、displayStepOdds()のhilo/hiloApi.ts:65–68における最初のコール表示ルール、hilo/hiloApi.ts:193–196のスキップ分岐とhilo/hiloGame.tsx:376–377のそのボタン
  • Betkyoエンジンのソース:_shared/serverMath.ts:12–14のfloor2()、および_shared/coinGame.ts:111のゲームごとの還元率読み取りと_shared/coinGame.ts:92の0.99フォールバック
  • この記事のために行われた正確な計算:エンジンの勝ちセットに対する26個のボタンすべての列挙、エンジンの順序で適用された両方の端数処理、1%および1.5%設定での単発コールおよび複数回コールのハウスエッジ、そしてクロスチェックとしてのデモループの3000万回シミュレーション

この記事で紹介されているゲーム

Hilo — ルール&無料プレイ →

ハイロー・カードゲームのランク別オッズとハウスエッジ ― 正確な次カード確率、各ボタンの配当、そして安全サイドが一番高くつく理由

コメント (1)

  • narrow_tide62

    The suit part is interesting—basically irrelevant to the entire game but still drawn anyway, kind of wasteful.