我打麻将の研究室

清一色の聴牌解析

概要

清一色のn枚形を列挙し、特に聴牌形を分類することを目標とする。 ただし、ここでは十三幺・七対・七対子は (聴牌認識問題として) 簡単であるから、理論の簡略化のため含めないこととする。

用語の定義

牌クラスタとは、空でなく、牌式表示で両端以外に0を含まない牌集合 (同種だが異なる牌は互いに区別して考えるものとするか、または同じことだが、多重集合とする) のこととする。 単にクラスタとも呼ぶ。 波括弧 {} に牌を表すソート済みの数列を入れて表記するか、牌式を [] で囲むことによって表す。 たとえば {111233334}=[314100000] は牌クラスタであるが、{4466}=[000202000] は牌クラスタではない。 牌クラスタが含む牌の枚数のことを牌クラスタのサイズといい、牌クラスタ C のサイズを |C| と書く。 具体的に中身を表示した牌クラスタのサイズを、|111233334| または (両端の0を省略した牌式によって) |3141| のように表記する。 ただし、|12| が {12}=[110000000] のサイズなのか {122}=[120000000] のサイズなのかは明らかでないので、誤解のおそれのある時には |C| の形式をとる。

手牌のクラスタ分解とは、手牌を最も少ない数の牌クラスタに分解することとする。 この時のクラスタの数のことを、クラスタ分解のサイズという。

ある牌集合が聴牌形であるとは、ある牌 (和牌門; 自分で使っている枚数が4枚未満であるもののみを考える) が存在して、それを加えると n面子1将頭 となることをいう。 したがって、枚数を 3 で割ると 1 余る必要がある。 本質的な聴牌形とは、聴牌形からサイズが 3 で割り切れるクラスタをいくつか取り除いて待ちが変わらないようにしたものである。 ただし、取り除き方が一意であるとは限らないことを注意しておく。 {1112444} から {444} を取り除いても {111} を取り除いてもよいこととする。

本稿では聴牌形を牌クラスタたちの関係によって分類することを試みる。 この際、7枚形までの知識を仮定することにし、将頭の関係ない面子分解については任意の枚数で行えることとする。

待ちを判定する際、たとえば手牌が {1113456888} = [301111030] であれば 0 の位置 3 つのクラスタに手牌を分解して「基本的な待ちの形は延単であること」および「単騎牌と2離れた暗刻は坎張を作ること」から待ちが 2367 であると導くことができる。 手牌が1つのクラスタからなる場合でも類似の方法を適用することはできるだろうか?

ここでも新たな用語を導入する必要がある。 牌集合、特に牌クラスタの切断とは、ランクの大きさがある値より小さいか大きいかに基づいて牌クラスタを2つの小さい牌クラスタに分けることである。 手牌の切断は (切断しないことも含めて) 高々9通りである。

たとえば手牌が {2223456777} = [031111300] であるとき、待ちを決定する方法の 1 つはいくつかの切断によって判断をすることである。 まず、切断 {2223}+{456777} を考える。 第2項は2面子になっているので、4枚形の知識を第1項に適用して 134 の待ちがわかる。 次に、切断 {22234}+{56777} を考える。 第1項は1面子1将頭になっているので、面子分解の知識を第2項に適用して 47 の待ちがわかる。 第2項も1面子1将頭になっているので、面子分解の知識を第2項に適用して 25 の待ちがわかる。 最後に、切断 {222345}+{6777} を考える。 第1項は2面子になっているので、4枚形の知識を第2項に適用して 568 の待ちがわかる。 以上より待ちは 12345678 となる。

この方法の特長は、複数の部分の関係を考える手間が小さいことにある。 最初の切断において 3 は単騎待ちであるが、それが 456 を 345 へずらすことによって 6 の単騎待ちに延長されること、さらに 777 によって 58 の新しい待ちを作ること、さらにずらされた順子 345 が 2 の新しい待ちを作ることは知らなくてもよいのである。

しかし、この方法の具体的な内容と正当性は明らかではない。 つまり、手牌が与えられたときに切断を考える位置の基準、およびそうした場合に待ちが過不足なく決定できる証明は与えられていないのである。 そこで、まず全体を列挙することによって切断の方法が正しく機能するか否かを調べよう。 反例があっても、それが簡単に覚えられる程度の量であるか、または他の簡便な方法で判定可能であれば、実戦上は有効たりうる。

クラスタの列挙

14枚以下からなるクラスタを、位置がずれただけの重複もこめて全て列挙し、

判定・探索したデータを用意した。

判定方法のテスト

研究中。