# フォールドしたスタックと ICM コールレンジ：日本語版図表

このディレクトリの日本語版 SVG は、英語版記事「The Folded Stack That Changes Your All-In Call」で公開した同じ正規データから再生成したものです。日本語化のために数値を再推定したり、レンジを手作業で写したりはしていません。

## 生成される図表

- `bb-calling-range-btn-5bb-ja.svg`：残り3人、SB 40bb、BB 20bb、フォールド済み BTN が 5bb のときの BB コールレンジ。
- `bb-calling-range-btn-10bb-ja.svg`：同じブラインドスタックで、フォールド済み BTN が 10bb のときの BB コールレンジ。
- `calling-range-comparison-ja.svg`：SB・BB スタックを固定し、フォールド済み BTN のスタックが異なる7組・14シナリオのコール率比較。

レンジ図は `range-views.json` の `icm-hero-short` と `icm-hero-long` を読みます。比較図は `pair-summary.json` の全7行を、保存順のまま読みます。英語版 SVG と正規 JSON は変更しません。

## 単位と計算

レンジ図の各マスに表示する数値は、BB が SB の実効オールインに対して 19bb を追加してコールする条件付き頻度です。色だけに依存しないよう、すべてのハンドクラスにコール率を文字でも表示しています。正確な浮動小数値は `range-views.json` と各 SVG の `data-call-frequency` 属性に残し、見出しとマス内では 0.1 パーセントポイント単位に丸めて表示します。

集計コール率は次の式です。

```text
Σ（ハンドクラスの組合せ数 × レンジ重み × コール頻度）
÷ Σ（ハンドクラスの組合せ数 × レンジ重み）
```

ペア、スーテッド、オフスートの組合せ数はそれぞれ 6、4、12 です。対象2ノードでは全169クラスの重みが1なので、分母は1,326コンボです。生成スクリプトは、5bb 側の集計値が `pair-summary.json` の `call_low`、10bb 側が `call_high` と 1e-12 未満の差で一致することを検査します。比較図の棒の長さには丸め前の値を使います。

スタックの単位は bb です。スタックは各プレイヤーが 0.12bb のアンティを支払った後、ブラインドを置く前の値です。保存済みアクション EV の単位は、残存賞金総額に対するパーセントポイントであり、bb ではありません。ただし、この3枚の SVG は EV を描画せず、アクション頻度だけを示します。

## 解釈上の注意

- コール率は相互カード除去やフォールド済み BTN のカード除去を復元していない、ハンドクラス組合せ数による周辺集計です。実際の配られやすさではありません。
- 頻度はショーダウンエクイティではありません。
- `range-views.json` の頻度は 0.4 パーセントポイント刻みです。元ソルバーの版、抽象化、収束精度、将来ゲームの設定は不明です。
- BTN 5bb と BTN 10bb は別々のネイティブ解です。BTN スタック以外に、総チップ量やそれ以前のレンジ、SB の小さいレイズメニューも変わります。「フォールド済み BTN のスタックだけ」が差の唯一の原因だとは断定できません。
- 7組の方向はすべて同じですが、個別ハンドの頻度がすべて同じ方向へ動くとは限りません。
- ヘッダー画像が説明用のイラストであるのに対し、これら3枚は公開 JSON を決定的に描画した証拠図表です。

研究全体の設定、独立した静的 ICM 計算、局所リグレットの式、既知の限界は英語版 `README.md` にあります。

## 再生成

リポジトリのルートで次を実行します。

```powershell
node scripts/generate-icm-folded-stack-ja-visuals.mjs
```

スクリプトには時刻、乱数、ネットワーク入力がありません。出力後に Sharp で3枚を SVG として解析し、寸法、`lang="ja"`、`title`、`desc` を検査して SHA-256 を表示します。同じ正規 JSON から再実行すれば、同じバイト列になります。
