概要
麻雀の何切る問題において、打牌の受け入れ枚数、聴牌確率、和了確率、期待値を計算するアプリ「麻雀何切るシミュレーター」について紹介します。
麻雀何切るシミュレーター
麻雀何切るシミュレーター は、手牌を入力すると、以下の情報を計算するアプリです。
- 手牌が13枚の場合は、有効牌を表示します。
- 手牌が14枚の場合は、各打牌の受け入れ枚数、点数期待値、和了確率、聴牌確率を表示します。(4向聴以上の場合は受け入れ枚数のみ)
対応している機能
- 場風、自風、ドラ、槓ドラ、赤ドラ対応、副露した手牌を設定できます。
- 向聴戻し、手変わり、ダブル立直、一発、海底撈月、裏ドラの考慮の有無を設定できます。
- テキスト形式で結果をコピーできます。
- 一般手、七対子手、国士無双手に対応しています。
- 打ち筋を期待値最大化、または和了確率最大化から設定できます。
4向聴以上の手牌の場合、計算量が膨大になり、数秒以内に計算するのが困難であるため、受け入れ枚数のみ表示します。 4向聴以上の場合は、期待値に基づく打牌を行えなくても、孤立字牌など明らかに不要な牌を整理している段階であるため、実用上はさほど困らないかと思います。
免責事項
- プログラムは開発中であり、不具合がある可能性があります。
- アプリが示す上位の打牌が実戦において必ずしも正着であるとは限りません。あくまで参考程度に活用ください。
- 期待値の計算方法については記事 麻雀における期待値の計算方法 を参照ください。
- ご意見や不具合報告がありましたら、こちらの記事のコメント欄か、GitHub のレポジトリ mahjong-cpp の issue にコメントしてください。
何切る問題の例
ネット上で見つけた何切る問題に関して、このアプリで期待値を計算した例を紹介します。計算結果は期待値が高い順に上位の打牌を載せました。
12577m222468p445s (2向聴)
場風牌: 東, 自風牌: 東, 1巡目, 手牌の種類: 一般手, ドラ: [南]
引用元: 現代麻雀技術論 – 牌効率論26.断ヤオ九
シャンテン戻しになってもタンヤオ確定なら孤立3~7>ペンチャン。
計算結果
打: 一萬, 受け入れ枚数: 23種78枚, 有効牌: [123456789m23456789p234567s] 向聴戻し
期待値: 1696点, 和了確率: 18.46%, 聴牌確率: 70.02%
打: 二萬, 受け入れ枚数: 23種78枚, 有効牌: [123456789m23456789p234567s] 向聴戻し
期待値: 1655点, 和了確率: 17.85%, 聴牌確率: 69.37%
打: 四索, 受け入れ枚数: 5種20枚, 有効牌: [3m57p36s]
期待値: 1466点, 和了確率: 20.87%, 聴牌確率: 72.54%
向聴戻しになりますが、断么九を確定させる 12m 辺張落としが良さそうです。
2345m113479p6778s (2向聴)
場風牌: 東, 自風牌: 東, 1巡目, 手牌の種類: 一般手, ドラ: [南]
引用元: 現代麻雀技術論 – 牌効率論56.2シャンテン戻し
2シャンテン戻しのパターン 優良孤立牌(4連形、中膨れ)×2
計算結果
打: 九筒, 受け入れ枚数: 19種64枚, 有効牌: [1234567m1256789p56789s] 向聴戻し
期待値: 2295点, 和了確率: 36.30%, 聴牌確率: 86.42%
打: 七筒, 受け入れ枚数: 18種60枚, 有効牌: [1234567m125789p56789s] 向聴戻し
期待値: 2180点, 和了確率: 34.65%, 聴牌確率: 85.94%
打: 二萬, 受け入れ枚数: 3種12枚, 有効牌: [258p]
期待値: 2117点, 和了確率: 35.73%, 聴牌確率: 86.97%
向聴戻しになりますが、79p 嵌張落としで 2345m、6778s のくっつき狙いが良さそうです。
133789m77p3378s北北 (2向聴)
場風牌: 東, 自風牌: 東, 1巡目, 手牌の種類: 一般手, ドラ: [南]
計算結果
打: 七筒, 受け入れ枚数: 6種18枚, 有効牌: [23m369s北]
期待値: 1301点, 和了確率: 20.03%, 聴牌確率: 69.68%
打: 三索, 受け入れ枚数: 6種18枚, 有効牌: [23m7p69s北]
期待値: 1299点, 和了確率: 20.01%, 聴牌確率: 69.65%
打: 北, 受け入れ枚数: 6種18枚, 有効牌: [23m7p369s]
期待値: 1200点, 和了確率: 20.22%, 聴牌確率: 70.16%
7p または 3s のどちらでも良さそうです。
344678m5r5789p125s (1向聴)
場風牌: 東, 自風牌: 東, 1巡目, 手牌の種類: 一般手, ドラ: [四索]
引用元: No.19851の集計結果 – 麻雀で何切る!?
4m: 48票、1s: 29票、5s: 19票、2s: 14票
計算結果
打: 一索, 受け入れ枚数: 15種50枚, 有効牌: [1234569m5p1234567s] 向聴戻し
期待値: 3743点, 和了確率: 30.64%, 聴牌確率: 84.71%
打: 二索, 受け入れ枚数: 15種50枚, 有効牌: [1234569m5p1234567s] 向聴戻し
期待値: 3694点, 和了確率: 30.04%, 聴牌確率: 84.71%
打: 四萬, 受け入れ枚数: 3種12枚, 有効牌: [25m3s]
期待値: 3537点, 和了確率: 33.21%, 聴牌確率: 86.33%
12s の辺張落としがよいという結果になりました。
79m445789p3489s西西 (2向聴)
場風牌: 東, 自風牌: 東, 1巡目, 手牌の種類: 一般手, ドラ: [七萬]
引用元: 問題No5520の集計結果 – 阿知賀女子学院の「何切る?」
1位: 4p、2位: 5p、3位: 西
計算結果
打: 四筒, 受け入れ枚数: 6種24枚, 有効牌: [8m36p257s]
期待値: 2689点, 和了確率: 22.30%, 聴牌確率: 73.43%
打: 九索, 受け入れ枚数: 7種24枚, 有効牌: [8m346p25s西]
期待値: 2615点, 和了確率: 26.00%, 聴牌確率: 78.73%
打: 八索, 受け入れ枚数: 7種24枚, 有効牌: [8m346p25s西]
期待値: 2600点, 和了確率: 25.96%, 聴牌確率: 78.68%
4p を切って、三色を狙いましょう。
233m34568p223789s (1向聴)
場風牌: 東, 自風牌: 東, 1巡目, 手牌の種類: 一般手, ドラ: [七萬]
計算結果
打: 八筒, 受け入れ枚数: 18種61枚, 有効牌: [12345m12345678p12345s] 向聴戻し
期待値: 4198点, 和了確率: 41.99%, 聴牌確率: 92.93%
打: 三萬, 受け入れ枚数: 3種12枚, 有効牌: [14m7p]
期待値: 3749点, 和了確率: 37.97%, 聴牌確率: 88.56%
打: 二索, 受け入れ枚数: 3種12枚, 有効牌: [7p14s]
期待値: 3726点, 和了確率: 37.91%, 聴牌確率: 88.65%
私は頭固定はしないで 2s か 3m 切りかなと思ったのですが、コンピューターの計算結果によると、向聴戻しの 8p 切りで受け入れを増やすのがよいという結果になりました。気になったので 一人麻雀練習機 のほうでも計算してみましたが、同じく 8p 切りの期待値が一番高くなりました。
666778m677p66778s (1向聴)
場風牌: 東, 自風牌: 東, 1巡目, 手牌の種類: 一般手, ドラ: [六筒]
計算結果
打: 七筒, 受け入れ枚数: 4種14枚, 有効牌: [58p58s]
期待値: 8550点, 和了確率: 43.29%, 聴牌確率: 89.41%
打: 七萬, 受け入れ枚数: 7種21枚, 有効牌: [69m578p58s]
期待値: 8520点, 和了確率: 44.19%, 聴牌確率: 90.15%
打: 六萬, 受け入れ枚数: 4種14枚, 有効牌: [58m58s]
期待値: 6770点, 和了確率: 44.75%, 聴牌確率: 90.29%
7m または 7p 切りで三色を狙いましょう。
まとめ
概ね、人間が考える打牌と同じ結果がコンピューターの計算でも得られることが確認できました。

コメント
コメント一覧 (141件)
よく利用させてもらってます!
三麻を検討する際に2-8mの枚数を0にして使うのですが、チーが使えない三麻において期待値と和了率に影響がないか気になります。
連投失礼します。
上記の他に チー が考慮されない麻雀においては打牌候補にもズレが生じるのでは?と思ったのですが
そちらもよければ教えていただけると嬉しいです。
シュミレーターにはお世話になってばかりで詳しい事はよくわかっていないので、見当外れの質問になっていましたら申し訳ございません。
基本的には0枚にしていただいておおよそ正しい値を算出できると思います。
毎回設定していただくのは手間と思いますので、今後のアップデートで三麻へ対応できるようにしたいと思います。
ちなみにシミュレーションは他家のいない自摸のみの1人麻雀という設定でのシミュレーションのため、副露は考慮しておりません
そのため、副露判断が絡む何着る問題は実戦に即した結果が出力されない可能性がありますので、ご注意ください
ご利用およびコメントありがとうございます。
全赤三人麻雀での期待値計算を行いたく、残り枚数設定で黒5s黒5pの枚数を0枚、赤5s赤5pの枚数を4枚として計算を実行したところ以下のエラーが出ました。
「More tiles than wall are used. (tile: 0p, wall: 3, used: 4」
対処法がありましたらご教授いただけませんか。
長らく放置していてすみません。
現在、赤牌は各1枚しか対応しておりません。
いつも迷った際に良く利用させていただいています。ありがとうございます。
聴牌外しは考慮されているのでしょうか?
聴牌している手牌とその手牌の1牌を適当な孤立字牌に変更したものをそれぞれ比べたところ後者の方が期待値が高い場合がありました。
特に赤やドラを切って立直する場合によく発生していました。
Ver0.9.5で聴牌外しの設定がおかしくなっている気がしますね
同じ牌姿かつ向聴戻しONで、0.9.0では複数候補が出るところ、0.9.5では聴牌に取れる1種しか候補に出ませんでした
長らく放置していてすみません。
聴牌の場合に意図的にシャンテン戻しを無効にしていたのですが、0.9.6 でシャンテン戻しも検討するように変更しました。
5r56m45999p123455s ドラ9p 東1 南家 7巡目
この手牌でアガリ率が5m切り>6m切りとシミュレートされました。受け入れ枚数が6m切りの方が19枚と3枚多く、計算ミスが発生していないでしょうか?
長らく放置していてすみません。
ご指摘ありがとうございます。確認したところ、受け入れ枚数だけを見るとおっしゃる通り6m切りが19枚、5m切りが16枚で6m切りが多くなります。
ただし本シミュレーションでは、初回の受け入れ枚数だけでなく、その後の手替わりも含めて最終的な和了率を計算しています。手替わりを無効にして確認すると6m切りの和了率が高くなりますが、手替わりを有効にすると5m切りのほうが将来の聴牌形・待ちの改善を含めてわずかに和了率が高くなりました。
そのため、今回の結果は手替わり込みの評価による逆転と考えています。
失礼致します。こちらでの計算結果を、卒業論文で使用したいのですが、可能でしょうか。もちろん出典に関しては記載させていただきます。
長らく放置していてすみません。
自由に引用していただいて構いません。ただし、他家がいない一人麻雀の前提で計算しているため、実際の4人麻雀とは結果が異なる場合があることにご留意ください。
向聴戻しを考慮するにチェックを付けても検討しないことがありますが必ず検討する訳では無いのでしょうか?聴牌に取れるが待ち枚数を0にした所、聴牌にとって期待値0になる選択肢しか出ないケースがありました。
長らく放置していてすみません。
聴牌の場合にシャンテン戻しを意図的に無効にしていたのですが、0.9.6 でシャンテン戻しも検討するように変更しました。
以下の牌姿
4789m45(r)577p34444s
(黒5p1枚、赤5p1枚)
を入力したところ、
4789m40577p34444s
と反映され、【結果】の牌姿には黒5p2枚、赤5p1枚が記載されていました(15枚で多牌)
何かバグが発生しているのでしょうか
コメントありがとうございます。
計算自体は 4789m40577p34444s として処理されていましたが、表示する際に赤牌と通常牌が二重に表示される不具合がございました。
本日のバージョン更新の影響で、先ほど修正いたしました。
なお、赤牌は0、r5、5r のいずれかで入力できるようになっており、入力完了時に0に統一される仕様となっております。
お忙しい中、迅速な対応ありがとうございます。引き続き使わせていただきます
以下の牌姿を入力したところ、
手牌:899m234567p244s55z / ドラ表示牌:6z
第一候補が2s切りとなりました。しかし、実際には最終形が9m・白のシャンポンになりやすい8m切りのほうが優れているように思えます(もし見落としがあれば申し訳ありません)。
このように、シミュレーターが明確に下位互換となる打牌を第一候補として選択することはあり得るのでしょうか?感覚的には、機械学習モデルとは異なり、このシミュレーターは探索・計算ベースで評価しているため、明確な下位互換を選ぶことはないと思っていました。
この点についてご教示いただけますと幸いです。
ご利用ありがとうございます。確認しました。
本シミュレーターは、他家が存在しないツモのみの一人麻雀として期待値を計算しております。そのため、白ポンで手を進めることや、最終形が9m・白のシャンポンになって出やすいためロン和了しやすいといった要素は考慮していないことを、結果を解釈する際にご留意ください。
その上で本シミュレーターは、和了形までの手変わりも含めた遷移を探索して打牌を比較しています。
今回の牌姿では、手変わりを考慮しない単純比較では 8m 切りのほうがやや有利ですが、手変わり込みの総合評価では 2s 切りが上回る結果になっていました。
手変わりなし: 8m > 2s
手変わりあり: 2s > 8m
直受けだけを見ると、両者とも 1 向聴を 0 向聴にする受けは 10 枚で、ほぼ互角です。
2s切り: 7m×4, 9m×2, 4s×2, 5z×2
8m切り: 3s×4, 9m×2, 4s×2, 5z×2
一方、2s 切り後は、向聴が進まないツモでも好形変化しやすい枝が多く、これが期待値を押し上げておりました。たとえば以下のような変化です。
8pツモ後: 899m2345678p44s55z → 4s対子落とし
1pツモ後: 899m1234567p44s55z → 4s対子落とし
3sツモ後: 899m234567p344s55z → 4s切り 5種16枚 79m25s5z
5sツモ後: 899m234567p445s55z → 4s切り 5種16枚 79m36s5z
> シミュレーターが明確に下位互換となる打牌を第一候補として選択することはあり得るのでしょうか?感覚的には、機械学習モデルとは異なり、このシミュレーターは探索・計算ベースで評価しているため、明確な下位互換を選ぶことはないと思っていました。
牌譜データの機械学習やモンテカルロシミュレーションではなく、一定の制約のもと和了形まで全遷移パターンを探索して計算しております。
そのため、一人麻雀の設定のもとでは手変わりありの場合、2s > 8m になったという解釈です。
これってダブリー考慮してなくないですか?
1巡目聴牌でも2巡目にしても大差ないのですが
コメントありがとうございます。
ご指摘の通り、現在の計算ではダブル立直は考慮しておりません。
このツールは「他家がいない一人麻雀」の前提で期待値を計算しており、ダブル立直の他にも、他家との駆け引きや他家の行動に左右される要素は省略しています。
現時点で考慮している要素は、赤ドラ、裏ドラ、向聴戻し、手変わり、立直、七対子、国士無双です。
一方で、ロン和了、聴牌時のダマテン、鳴き、牌の出やすさ、牌の危険度、放銃、供託棒、不聴罰符、一発、海底撈月、ダブル立直などは考慮しておりません。
参考になりましたら幸いです。