ネット麻雀の天鳳で公開されている、天鳳位の人の牌譜*17670ゲームを集計して、牌の危険度を分析しました。
得られた主な知見 †
- 大雑把な危険度:
- 中スジ(2p, 8pに対する5pなど)は表スジ(4pに対する1pなど)より安全。
- 生牌の字牌はスジの通った数牌よりやや危険、片スジよりは安全。
- 序盤の捨て牌の外側はスジと同程度に安全。
- 暗刻スジはやや危険度が上がる。
- 裏スジは危険度に影響しない。序盤の裏スジに限っても特に危険ではない。
- ただし序盤に5を捨てている場合の1, 9は危険度が上がる。
- 間四間も危険度に影響しない。
- またぎスジは基本的に危険度が下がる。リーチ牌のまたぎスジであってもノーヒントよりはやや安全。
リーチ放銃率一覧 †
- 例えば「字牌の放銃率」とは、上記の牌譜において、単独リーチに対して字牌を切った場合に当たる確率です。
- 現物の安牌はどの数字にも含まれません。つまり「字牌」は「現物の安牌以外の字牌」のことです。
- 2.6〜3.0などとなっているのは、95%の信頼区間(confidence interval)というやつです。大雑把に言えば、だいたいこの範囲のどこかだと思って間違いない、という意味です。
- 単なる放銃率なので、手の高さは考慮されません。
全体 †
字牌 †
条件 | 放銃率[%] |
字牌平均 | 2.6〜3.0 |
3枚切れ | 0.0〜0.1 |
2枚切れ | 0.3〜0.6 |
1枚切れ | 2.3〜2.8 |
生牌 | 5.1〜6.0 |
表スジ/中スジ †
条件 | 放銃率[%] |
表スジ/中スジ平均 | 4.0〜4.4 |
リーチ後に通ったスジ | 3.1〜3.5 |
リーチ牌のスジ | 4.7〜5.6 |
片スジ/無スジ †
ある程度危険度が下がる条件:
条件 | 放銃率[%] |
(片スジ/無スジ平均) | 11.2〜11.4 |
ノーチャンス | 2.7〜3.3 |
序盤の捨牌の外側 | 3.8〜4.6 |
リーチ前の捨牌の外側 | 6.3〜6.8 |
ワンチャンス | 7.3〜7.9 |
数字が1か9 | 7.7〜8.3 |
リーチ前に同種牌を4枚以上捨てた | 7.6〜9.0 |
片スジ | 8.3〜8.8 |
ある程度危険度が上がる条件:
条件 | 放銃率[%] |
(片スジ/無スジ平均) | 11.2〜11.4 |
リーチ前に同種牌を捨てていない | 12.0〜12.7 |
自分が2枚持っている牌のスジ | 12.1〜12.8 |
自分が3枚持っている牌のスジ(暗刻スジ) | 12.5〜14.1 |
裏スジ/間四間/またぎスジ:
条件 | 放銃率[%] |
(片スジ/無スジ平均) | 11.2〜11.4 |
リーチ前の捨牌の裏スジ | 11.3〜11.8 |
序盤の裏スジ | 10.3〜11.1 |
序盤に5を捨てている場合の1, 9 | 11.2〜16.3 |
リーチ牌の裏スジ | 8.9〜9.7 |
間四間 | 10.4〜11.8 |
リーチ前の捨牌のまたぎスジ | 8.2〜8.6 |
中盤のまたぎスジ | 8.3〜8.9 |
リーチ牌のまたぎスジ | 9.3〜10.2 |
考察 †
中スジ vs 表スジ †
中スジが表スジより安全なのが個人的には意外だったのですが、常識だったりするのでしょうか。@shinhさんが確か「2p, 8pが通っていて5pが当たりってことは嵌張だと2468pを持ってたわけで、そこからだと普通は5p待ちにならずに3p待ちか7p待ちになるのでは」みたいなことを言っていました。それはそうかも。
片スジ/無スジ vs 表スジ vs 中スジを、更に牌の数字で場合分けしてグラフ化してみました。
バーは信頼区間です。
- 全体的に外側ほど安全
- 中スジは表スジの2,8, 3,7より安全
- 片スジ/無スジの4, 6は5よりほんのちょっと危険(なぜ?)
といったことが分かります。
リーチ牌のスジ †
条件 | 放銃率[%] |
表スジ/中スジ平均 | 4.0〜4.4 |
リーチ牌のスジ | 4.7〜5.6 |
スジ(表スジ/中スジ)が通っている牌のうち、リーチ牌のスジはやや危険です。これはよく言われるとおりですね。それでもスジが通ってない牌よりはずっと安全ですが。あと、細かく見ていくと、これは牌の数字が1,9の場合には当てはまりません。1,9のスジ引っ掛けは難しい(双碰、単騎しかない)からでしょうね。
TODO: リーチ前に通ったスジとリーチ後に通ったスジを比較。
スジ以外の危険度が下がる条件 †
条件 | 放銃率[%] |
(片スジ/無スジ平均) | 11.2〜11.4 |
ノーチャンス | 2.7〜3.3 |
序盤の捨牌の外側 | 3.8〜4.6 |
リーチ前の捨牌の外側 | 6.3〜6.8 |
ワンチャンス | 7.3〜7.9 |
数字が1か9 | 7.7〜8.3 |
リーチ前に同種牌を4枚以上捨てた | 7.6〜9.0 |
片スジ | 8.3〜8.8 |
ノーチャンスは当然ながらかなり安全です。序盤の捨て牌の外側、というのはスジと同程度に強力な条件だというのが分かりますね。また、片スジでも通ってないよりはだいぶましです。
危険度が上がる条件 †
条件 | 放銃率[%] |
(片スジ/無スジ平均) | 11.2〜11.4 |
リーチ前に同種牌を捨てていない | 12.0〜12.7 |
自分が2枚持っている牌のスジ | 12.1〜12.8 |
自分が3枚持っている牌のスジ(暗刻スジ) | 12.5〜14.1 |
試した範囲では、危険度が激増する条件は見当たりませんでした。せいぜい1〜2%上がる程度です。この中では暗刻スジが比較的危険と言えます。
裏スジ/間四間/またぎスジ †
条件 | 放銃率[%] |
(片スジ/無スジ平均) | 11.2〜11.4 |
リーチ前の捨牌の裏スジ | 11.3〜11.8 |
序盤の裏スジ | 10.3〜11.1 |
序盤に5を捨てている場合の1, 9 | 11.2〜16.3 |
リーチ牌の裏スジ | 8.9〜9.7 |
間四間 | 10.4〜11.8 |
リーチ前の捨牌のまたぎスジ | 8.2〜8.6 |
中盤のまたぎスジ | 8.3〜8.9 |
リーチ牌のまたぎスジ | 9.3〜10.2 |
よく危険牌の条件と言われる裏スジ/間四間/またぎスジを、序盤の捨て牌/中盤の捨て牌/リーチ牌などに場合分けして評価しました。が、特に危険度が上がるものはありませんでした。これらはほぼ無意味と言っていいのではないでしょうか。
例外として、序盤に5を捨てている場合の1,9は、危険度が上がります。下の「序盤の裏スジ」のグラフを見ると分かりますね。
序盤に5を捨てている場合、1,9の危険度は上がりますが、4,6の危険度は上がりません。これは妙な気もしますが。14待ちの危険度が上がって、47待ちの危険度が下がって、相殺している、とかでしょうか。
またぎスジについては、捨牌のタイミングによらず、全体的に危険度が下がるという結果になりました。またぎスジは「捨牌の外側」との重複が多いからかもしれません(捨牌の外側は危険度が下がる)。リーチ牌のまたぎスジでさえ、やや危険度が下がるというのは意外でした。
詳細 †
以下は大変細かい話です。気になる人だけどうぞ。
リーチ放銃率の定義 †
今回使ったリーチ放銃率の定義を、字牌のリーチ放銃率を例にとって説明します。
ある場面における字牌のリーチ放銃率:
- 「他家の単独リーチがかかった状態で打牌する」という場面それぞれについて、以下のように定義する。手牌の「現物の安牌以外の」字牌から重複を排除し、その中からランダムに1牌選んだ場合に、それがリーチの当たり牌である確率を「字牌のリーチ放銃率」とする。
- 2人以上のリーチがかかった場面は集計から除外する(扱いが面倒なので)。
- 今回の牌譜では全ゲームに特定の2人のどちらかが入っている。その2人へのバイアスを小さくするために、その2人によるリーチは集計から除外する。
ある局における字牌のリーチ放銃率:
- その局内の(上の条件を満たす)各場面における字牌のリーチ放銃率の平均。
全牌譜における字牌のリーチ放銃率:
95%の信頼区間は、各局におけるリーチ放銃率を1つのサンプルとみなし、bootstrap resamplingを使って求めます。
直接全場面の平均を取るのではなく、一度局ごとに平均をとってから、さらにその平均をとっています。同局内の場面は似通っているので、特に信頼区間を求める際に、独立したサンプルとみなすのは問題があると考えたからです。
よりよい or 一般的な定義があれば教えてください。
各条件の定義 †
自明でなさそうなところだけ説明します。
- 「2枚切れ」は正確には「今から切る牌も含めて自分視点で3枚見えている」ということ。つまり、「場に2枚、手牌に1枚」「場に1枚、手牌に2枚」「場に0枚、手牌に3枚」はすべて「2枚切れ」扱い。
- スジ系の定義はWikipediaの説明に準ずる。
- 1469pは5pの裏スジとする。
- 両面待ちの可能性がなくなればノーチャンスとする。例えば5pが4枚切れなら3pはノーチャンス。ただし、複数の牌が切れていることによるノーチャンス(3p, 7p切れでの5pなど)は考慮しない。ワンチャンスも同様。
- 「リーチ前」にはリーチ牌自体も含む。
- 「序盤」はリーチ前の前半、「中盤」はリーチ前の後半とする。「中盤」にはリーチ牌自体も含む。これはかなり独自定義。6巡目までが序盤、とかのほうが一般的?ただ、裏スジなどの文脈で、5巡目リーチの時に4巡目が序盤というのは変な気もしたので、こんな定義にしてみました。
ソースコード †
今回の集計に使ったソースコードはこちらです。が、たぶん使い方が分からないと思います…。質問してください。
バグがあって集計が間違っている、という可能性もあります。これを書いている間にも1つバグを修正しました。
ご意見 †
TwitterかGoogle+あたりにどうぞ。
追加で試すべき条件を募集中。