見出し画像

麻雀で天和がでる確率/LLMにはなかなか荷が重いようです。

タイトル画像は、ume_sendaiさんのnoteからいただきました。
問題があれば、差し替えます。


こんにちはmakokonです。
宝島社の「アレの統計・確率」を見ていると以下のような画像がありました。「人生で遭遇する出来事の確率」だそうです。
個々に残っている数字の信頼性はチェックしていませんが多分確率として議論できるような精度ではないでしょう。適当な報告書で数を数えてみただけに決まっています。数学の本ではないので、そこは突っ込みません。問題はこの中にある「麻雀で天和がでる確率 0.00003%」というところです。これは計算できる数字ですね。
実際に計算してもいいのですが、LLMはこのような問題が理解できるのかどうか聞いてみました。
今回は、ただLLMとの会話を繰り返して、コメントを入れているだけの記事です。LLMの苦手はわかりますが、役に立つ情報は得られません。(そこまで進まなかった)内容が薄く、長いので申し訳ない。LLMの苦手に興味があれば読んでください。

結論としては、LLMは重複した組み合わせを、正確に数えるような問題は問題の認識から間違えやすいし、コンテキストが長くなると混乱しやすくこの種の問題がとても苦手だとわかりました。
今度思考モデルで試してみるべきかもしれませんね。


宝島社「アレの統計・確率」

今回のプレーヤー anthropic.claude-3-5-sonnet-20241022-v2:0

今回相談したのは、anthropic.claude-3-5-sonnet-20241022-v2:0さんにしました。最近はよくお世話になっています。

麻雀で天和を上がる確率を計算したいと思います。どのように考えるべきでしょうか

天和の確率計算について、基本的な考え方を説明します:
1. 前提条件
- 親番であること(親のみ天和可能)
- 配牌14枚で完成している必要がある
2. 確率の計算ステップ
- 136牌中14枚を引く組み合わせ全体が母数
- そのうち、和了形になっている場合が分子
3. おおよその確率
- 約1/48,000とされている
- これは七対子や国士無双なども含む全ての和了形を考慮した場合
詳細な計算には、以下を考慮する必要があります:
- 通常手の和了形
- 七対子形
- 国士無双形
- 十三不塔形
実際の計算は複雑ですが、基本的にはこのような組み合わせの問題として扱います。

1/48,000≒0.0000208333≒0.002%だと言っていますね。宝島さんとはだいぶ違う数字ですね。どんな考え方があるのでしょうか(別にLLMがとっさに計算したわけでないことは承知しています。突っ込まないでください)

一応問題は正しく認識しているように見えます。
では、計算方法を相談してみましょう。

計算の基本方針を聞いてい見ましょう。

質問:136枚から14枚を選ぶ方法の計算は容易ですが、それが和了形となっていることをチェックする方法がわかりません。
もちろん14枚を具体的に提示されたときの判定はちょっとしたプログラムの問題ですが、すべての組み合わせをチェックするのは実際的でないと思えます。

より効率的な計算アプローチを考えてみましょう:
1. 逆向きの発想
- 和了形から出発する方が効率的
- まず、可能な和了パターンを分類して数え上げる

2. 主な和了パターン
- 基本形:4面子1雀頭
- 七対子
- 国士無双
- 十三不塔

3. 基本形の数え方
- 雀頭(1組)+面子(4組)の組み合わせ
- 面子は順子か刻子
- 同じ牌の重複使用は不可
- この部分が最も計算が複雑

4. 具体的なアプローチ
- まず雀頭を決める(89通り)
- 残りの牌から4面子を作る
- 面子の組み合わせは、順子と刻子の選び方で場合分け

これでも計算量は多いですが、136C14の全組み合わせをチェックするよりは現実的です。
特に、牌の種類による対称性を利用すれば、さらに計算を簡略化できる可能性があります。

このアプローチでよろしければ、次のステップとして具体的な数え上げ方法を考えていきましょう。

まあ、悪くないですね。続きを聞いてみましょう。

進めてください(具体的な数え上げ方法)

では、具体的な数え上げの方法を考えていきます:
1. 七対子の場合
- 最も計算が簡単
- 7組の異なる対子を選ぶ
- 34種類から7種類を選ぶ組み合わせ:34C7
- これに各対子が2枚ずつ必要という条件を加味

2. 国士無双の場合
- 1,9牌+字牌(計13種)から12種を2枚ずつ、1種を1枚
- または13種全てを1枚ずつ+いずれか1つを追加
- これも比較的単純に計算可能

3. 基本形(4面子1雀頭)の場合
- まず雀頭を決める
- 残りの牌で作れる面子のパターンを数える
- ここでのポイント:
- 順子と刻子の組み合わせパターン
- 同じ数字の順子の重複可能性
- 使用可能な牌の残数制限

まず、七対子と国士無双の具体的な数値を計算し、
その後で最も複雑な基本形の計算に進みましょうか?

いきなり国士無双の
- 1,9牌+字牌(計13種)から12種を2枚ずつ、1種を1枚
あたりで怪しいですね。もちろん12種を1枚ずつ、1種を2枚です。
でも、またはのところが正しいので、気にせず進めます。
こんなことでつまずいていたらLLMとはお友達になれません。

進めてください。(七対子と国士無双)

では、まず七対子と国士無双の計算を行います:

1. 七対子の場合
- 34種類の牌から7種類を選ぶ:34C7
- 各選んだ牌は必ず2枚必要
- よって、計算式:34C7 = 34!/(7!(34-7)!) = 2,629,575通り

2. 国士無双の場合
- パターン1:13種から12種を2枚、1種を1枚
- 13種の中から1枚だけの牌を選ぶ:13通り
- その他は一意に決まる
- パターン2:13種全てを1枚ずつ+いずれか1つを追加
- 13種の中から追加する1枚を選ぶ:13通り

よって、国士無双は合計26通り

ここまでで、七対子が2,629,575通り、国士無双が26通りとわかりました。

次は基本形(4面子1雀頭)の計算に進みましょうか?
これがもっとも複雑な部分になります。

七対子では、2枚必要と書いているのに式は考慮していません。
国士無双では、パターン1が本気だったんかい?合計が14枚にならないことがわからないのかなあ。(最近の思考モデルだとちゃんと振り返るかもしれませんね)
パターン2の方でも、1枚選ぶときには4枚から選ぶ、2枚目を選ぶときは3枚から選ぶと言った重複の数え方が全然入ってきません。
まあ、かろうじて天和の形にはなっているので、次を聞きます。

進めてください。(4面子1雀頭)

基本形(4面子1雀頭)の計算を進めます:

1. まず雀頭の選び方
- 数牌:(9×3)×2=54通り
- 字牌:7×2=14通り
- 合計68通りの雀頭候補

2. 残りの12枚で4面子を作る場合の考え方
- 面子の種類
a) 順子(123,234,345,...,789の7通り)×3種=21通り
b) 刻子(同じ数字3枚):34通り

3. 4面子の組み合わせパターン
- 順子x面+刻子y面(x+y=4)の場合分け
- 順子4面
- 順子3面+刻子1面
- 順子2面+刻子2面
- 順子1面+刻子3面
- 刻子4面

ここで重要な制約:
- 同じ種類の牌は4枚まで
- 面子同士で牌が重複してはいけない
- 雀頭で使用した牌の考慮

これらの制約を考慮しながら、各パターンを数え上げていく必要があります。
まず、どのパターンから具体的に計算していきましょうか?

相変わらず重複の概念が出てきませんが、これは後で聞くとして、制約の

  • - 同じ種類の牌は4枚まで

  • - 面子同士で牌が重複してはいけない

  • - 雀頭で使用した牌の考慮

この重複してはいけないというのが気になりますね。なにか勘違いしている気配がプンプンします。

順子4面のパターンを進めてください。

順子4面のパターンを計算します。

1. まず雀頭を固定して考える
例えば、1萬を雀頭とした場合:

2. 残りの順子の選び方を考える
- 萬子で可能な順子:123,234,345,456,567,678,789の7通り
- 同様に索子、筒子でも各7通り
- 合計で21種類の順子候補

3. ここでの制約
- 同じ数の牌は4枚まで使用可能
- 雀頭で使用した牌(この例では1萬が2枚)を考慮
- 選ぶ順子同士で牌が重複してはいけない

4. 具体的な数え方
- 4面子を選ぶ際、同じ種類(萬子、筒子、索子)の順子を複数選ぶ場合:
- 重なりがないよう注意
- 例:123萬と234萬は2萬で重複
- パターン分類
a) 同一種類から4面子
b) 3面子+1面子を別種類
c) 2面子+2面子を別種類
d) 各種類から1面子ずつ+1面子

このように分類して計算を進めていきましょうか?

まだ、決定的な破綻はないようです。

進めてください。(具体的に)

では、順子4面のパターンを具体的に数えていきます。

1. 同一種類から4面子を取る場合
- 例:萬子だけで4面子
- 重複なく4つの順子を選ぶ必要がある
- 可能な組み合わせ:
- 1234-3456-5678-789
- 123-345-567-789
- このように、重複なく4つの順子が取れるパターンを数え上げ
- 各種類(萬子、筒子、索子)で同様

2. 3面子+1面子を別種類から取る場合
- 例:萬子から3面子、筒子から1面子
- まず萬子で重複なく3面子を選ぶ
- 残りの1面子は別種類から自由に選択可能
- これを3種類の組み合わせで計算

3. 2面子+2面子を別種類から取る場合
- 例:萬子から2面子、筒子から2面子
- 各種類で重複なく2面子を選ぶ
- 3種類からの2種類の選び方を考慮

4. 各種類から1面子ずつ+1面子の場合
- 各種類から1面子ずつ選び
- 残り1面子をいずれかの種類から選ぶ

これらのパターンについて、具体的な数値計算に進みましょうか?

流石にこれは見逃すことができませんね。麻雀になっていません。
- 可能な組み合わせ:
- 1234-3456-5678-789
- 123-345-567-789

- このように、重複なく4つの順子が取れるパターンを数え上げ

1234てどんな順子ですか?15枚もありますよ。
重複なくていうけど、同じ牌は4枚あるんだから重複できるじゃん。

流石に指摘して、修正してもらいましょう。

わかりません。 

質問:まず、1234-3456-5678-789 は順子ではありません。4枚で構成する順子はありません。
つぎに、
それぞれの牌は4枚ずつあるので、例えば、123−123−123−123といった組み合わせも許されるはずです。

申し訳ありません。その通りです。完全な勘違いをしていました。
順子4面の数え方を修正します:

1. 基本的な考え方
- 順子は3枚で構成(例:123)
- 同じ順子は最大4回まで使用可能
- 例:123-123-123-123 は可能(各数字4枚ずつ使用)

2. 種類ごとの順子
- 萬子:123,234,345,456,567,678,789 の7種類
- 筒子:同様に7種類
- 索子:同様に7種類
- 合計21種類の順子

3. 4面子の選び方
- 同じ順子を複数回使用可能
- 例えば:
- 123-123-123-123
- 123-123-234-234
- 123-234-345-456
このように考え直して計算を進めていきましょうか?

まあ、続きを聞いてみましょう。

進めてください (数えてみてくれ)

はい、順子4面の数え方を具体的に進めます:
1. まず1種類(例えば萬子)の中での4面子の選び方
- 7種類の順子(123〜789)から、重複を許して4つ選ぶ
- これは「重複組合せ」の問題:7H4
- 計算式:(7+4-1)C4 = 10C4 = 210通り

2. 3種類(萬子・筒子・索子)での選び方
- 各種類の順子から何面子ずつ選ぶかで場合分け
a) 1種類から4面子:210×3通り
b) 2種類から面子(例:3+1,2+2)
c) 3種類から面子(例:2+1+1)

3. 雀頭との関係
- 雀頭で使用した牌の種類により、使える順子が制限される場合がある
- 例:1萬を雀頭に使用した場合、123萬の順子は最大3回まで

この方向で計算を続けましょうか?

かなり胡散臭いですね。
1萬を雀頭に使用した場合、123萬の順子は最大3回まで
雀頭は2枚消費するから2回までですね。計算式の胡散臭さは一旦パスです。
致命的な考え方だけ修正して次に行きます。

1萬を雀頭に使用した場合、123萬の順子は最大2回まで


質問:1萬を雀頭に使用した場合、123萬の順子は最大2回までです。修正して進めてください。

申し訳ありません。その通りです。
1萬を雀頭に使用すると:
- 1萬は4枚中2枚を雀頭で使用
- 残り2枚の1萬しか使えない
- よって123萬の順子は最大2回まで
修正して計算を進めます:
1. 雀頭が数牌の場合の制約
- 例:1萬が雀頭の場合
- 123萬は最大2回まで
- 他の順子(234萬以降)は最大4回まで
- 例:2萬が雀頭の場合
- 123萬は最大4回
- 234萬は最大2回
- 345萬は最大4回

2. 雀頭が字牌の場合
- 全ての順子が最大4回まで使用可能
- より組み合わせの自由度が高い

このように雀頭による制約を正しく考慮して計算を進めましょうか?

いやあ、基本的な間違いがなかなか抜けられないですね。
例:2萬が雀頭の場合
- 123萬は最大4回 → 最高2回
- 234萬は最大2回
- 345萬は最大4回

123萬も234萬も2萬を使っているから、最高2回ですよね。
しかもこの2つの合計も最高2回です。数字の続きを分解して考えられていないのもLLMらしいけど、ちょっと許せないですね。もうちょっと親切に念押ししましょう。

正しく、考慮できていません

質問:正しく、考慮できていません。
2萬が雀頭の場合
123萬は最大4回 →最大2回
234萬は最大2回
しかも、123,234のパターンは合わせて最大2回です。
三萬が雀頭の場合は、更に制限がつよく
123,234,345のパターンを合わせて最大2回です。

申し訳ありません。ご指摘の通りです。
雀頭による制約を正しく整理し直します:

1. 雀頭が1萬の場合
- 123萬は最大2回まで

2. 雀頭が2萬の場合
- 123萬は最大2回
- 234萬は最大2回
- ただし123萬と234萬の合計は最大2回まで

3. 雀頭が3萬の場合
- 123萬は最大2回
- 234萬は最大2回
- 345萬は最大2回
- ただし123萬,234萬,345萬の合計は最大2回まで

つまり、ある数の牌が雀頭になると:
- その数を含む全ての順子パターンの合計使用回数が最大2回に制限される
- これは、残り2枚の牌しか使えないという物理的制約からくるものです。

この制約を正しく反映して計算を進めましょうか?

まあいいでしょう。続けてもらいましょう。

進めてください (順子 4面)

では、順子4面の計算を進めます。

まず、計算を単純化するため、以下のケースから始めましょう:

1. 雀頭が字牌の場合(制約が最も少ない)
- 全ての順子が4回まで使用可能
- 萬子の7種類の順子(123〜789)から4面子を選ぶ場合
- 筒子、索子も同様

2. 雀頭が1萬の場合
- 123萬は最大2回まで
- 他の順子(234〜789萬)は4回まで
- 筒子、索子は制約なし

3. 雀頭が2萬の場合
- 123萬と234萬の合計が最大2回
- 他の順子は4回まで
- 筒子、索子は制約なし

まず、字牌が雀頭の場合の計算から始めましょうか?

まあいいでしょう。

進めてください。 (雀頭が字牌)

では、字牌が雀頭の場合から計算します。

1. 一種類(例:萬子)の中だけで4面子を作る場合
- 7種類の順子から重複を許して4つ選ぶ
- ただし各順子は最大4回まで
- 例:
- 123-123-123-123 (OK、4回まで)
- 123-123-123-234
- 123-123-234-234
など

これは「重複組合せ」の応用ですが、各要素の使用回数に上限(4回)がある特殊なケースとなります。

まず、この一種類での計算を具体的に進めましょうか?
それとも、もっと単純なケースから始めるべきでしょうか?

進めてください。 (一種類で)

では、一種類(萬子)での4面子の組み合わせを数えていきます。

7種類の順子(123〜789)から4面子を選ぶ場合:

1. 一つの順子だけを使う場合
- 4回使用:123-123-123-123 のような形
- 7種類の順子それぞれについて可能
- 7通り

2. 二つの順子を使う場合
- 例:123と234で4面子を作る
- パターン:
- 3-1配分:123-123-123-234
- 2-2配分:123-123-234-234
- 順子の選び方は7C2
- 各選び方について配分パターンを考慮

つづけて、
1. 一つの順子を4回使用
- 7種類から1つ選ぶ:7C1 = 7通り

2. 二つの順子で4面子
- 順子の選び方:7C2 = 21通り
- 配分パターン:
- 3-1配分:各順子について1通り → 2通り
- 2-2配分:1通り
- よって21×3 = 63通り

3. 三つの順子で4面子
- 順子の選び方:7C3
- 配分パターン:
- 2-1-1配分
- どの順子を2回使うか考慮

ここまでの計算が合っているか確認し、3つの順子のケースを詳しく計算しましょうか?

もう、かなり怪しい。計算を確認すると行っているから確認させる。

確認して進めてください。

はい、確認しながら進めます。
【確認】
1. 一つの順子を4回:7通り ✓
2. 二つの順子で4面子:
- 7C2=21の選び方
- 各選び方について
- 3-1:2通り(AAABとBAAA)
- 2-2:1通り
- 計21×3=63通り ✓

【続き】
3. 三つの順子で4面子
- 順子の選び方:7C3=35通り
- 配分パターン:
- 2-1-1配分:どの順子を2回使うか選ぶ(3通り)
- よって35×3=105通り

4. 四つの順子で4面子
- 順子の選び方:7C4
- 各順子1回ずつ使用
- 配分パターン:1通りのみ

ここまでの確認と4つの順子のケースの計算を進めましょうか?

そろそろ、重複の問題が見逃せなくなってきました。極端な例を提示して修正してもらいましょう。

問題があります。

質問:今までの組み合わせにも共通していますが問題があります。
3-1:2通り(AAABとBAAA)
2-2:1通り
となっていますが、AとBに共通の牌がない場合、A1A2A3A4から3つ選ぶ4通り、B1B2B3B4から一つ選ぶ4通りのような配慮がありません。母数の136C14には、これらのすべてが含まれています。しかもAのパターンは4種類ではありません。
また、A,Bに共通の牌がある場合は、指摘されたように2-2の場合の形は1通りとなり、複雑です。

ご指摘ありがとうございます。非常に重要な点を見落としていました。

例えば、123-123-123-234の場合:
1. 123萬の順子は4通りあり(1₁2₁3₁, 1₁2₁3₂, 1₁2₂3₁, 1₂2₁3₁)
2. 234萬の順子も4通りあり
3. ただし、2の牌を共有するため、使用済みの2の牌は使えない

つまり:
- 共通の牌がない場合:
- 一方の順子から3つ選ぶ(4C3)
- もう一方から1つ選ぶ(4C1)

- 共通の牌がある場合:
- 牌の使用状況を考慮しながら選ぶ必要あり
- 単純な組合せでは計算できない

このように、牌の同一性を考慮した詳細な計算が必要ですね。
アプローチを修正して再計算する必要がありますが、どのように進めるべきでしょうか?

とうとう、進め方をこちらに聞いてきました。
このあと10ターンほど、細かい指示を入れながら進めましたが、間違いが堂々巡りするようになり、進展しなくなりました。
おそらく、会話履歴に含まれる正しいアプローチと間違ったアプローチを正確に認識できないのでしょう。コンテキストウインドウの制限からするとまだまだ余裕のはずですが、似たような単語に異なった判断(否定とか多いとか足りないとか)がつくと、混乱しやすいですね。

これで会話を中断します。

まとめ

麻雀における天和が出る確率ということでLLMと長々と話をしましたが、LLMの苦手な側面を確認できたような気がします。

まず、問題の認識として、抜けなく、ダブりなく問題の条件を認識することそのものが苦手です。
しかも数字の羅列を文字として独立して思考を進めることができず、数字の中の共通部分を認識できません。(正確にな認識するのですがすぐに忘れて、経験が活きません)
そして、コンテキスト(履歴)が長くなり、同じような言葉がたくさん出るようになると重要な情報を正しくピックアップすることができません。

こういう問題は、今回のような冗談のような会話では問題ありませんが、RAGによる複雑な検索や、複数のロジックを積み重ねる問題、フォーマットに依存して同じ文字列から違う意味を引き出す問題などでは、かなり致命的な動作をすると思われます。

何度も言われることですが、LLMの言うことを鵜呑みにしないことが大切です。
そして、問題を整理して、改めて問いかけるなど、LLMが理解しやすい工夫がリウかもしれませんね。
例えば、会話を整理して有効な情報をJSONで書き出したあと、履歴をクリアして、情報を再読込するとか。
間違いを細かく指摘して思考を調整することが大切そうです。
今回の結果は、残念なものですが、また少しLLMと仲良く慣れた気がします。

ハッシュタグ

#LLM #麻雀 #天和 #確率 #ロングコンテキスト #検索精度
#組み合わせ  


いいなと思ったら応援しよう!