我打麻将の研究室

天和時の役複合率

注釈

ここにない役のいくつかは旧ページにて、素朴な方法、または母関数の稚拙な扱いなどにより計算されている。

概要

役別の和了形総数を求め、天和における役の複合率を算出する。

前提

方法

基本的には、各役に使用可能なスートの組合せ数を母関数の形で記述し、一括して畳み込みの演算を行う。 ただし、手計算の簡単な役については、個別に計算することがある。 どちらの方法をとるかは任意であるが理解しやすいと思われるものを優先し、その結果としてこれらの混合となるものがある。

結果

以下、役の (母関数的) 分類別に、またその中では和了形総数の少ないものより順に記す。

字牌部分役

四风会

該当役部分、すなわち4面子の組合せ数は (4C3)4 = 256.

雀頭の組合せ数は (34-4)(4C2) = 180.

求める和了形数はこれらの積であるので、256×180 = 46080.

小四风会

該当役部分、すなわち3面子と雀頭の組合せ数は (4C1)(4C3)3(4C2) = 1536.

第4面子の組合せ数は 12+3×484 = 1464.

求める和了形数はこれらの積であるので、1536×1464 = 2248704.

大三元

該当役部分、すなわち3面子部分の組合せ数は (4C3)3 = 64.

第4面子と雀頭の組合せ数は字牌4種の母関数と数牌の母関数の3乗を畳み込んだものの sh の係数であるから 252144.

求める和了形数はこれらの積であるので、64×252144 = 16137216.

三风会

該当役部分、すなわち3面子部分の組合せ数は (4C1)(4C3)3 = 256.

第4面子と雀頭の組合せ数は字牌3種の母関数と数牌の母関数の3乗を畳み込んだものの sh の係数であるから 262640.

求める和了係数はこれらの積であるので、256×262640 = 62115840.

小三元

該当役部分、すなわち2面子と雀頭の組合せ数は (3C1)(4C3)2(4C2) = 288.

第3・4面子の組合せ数は字牌4種の母関数と数牌の母関数の3乗を畳み込んだものの s2 の係数であるから 921912.

求める和了形数はこれらの積であるので、288×921912 = 265510656.

双箭刻

該当役部分、すなわち2面子の組合わせ数は (3C2)(4C3)2 = 48.

第3・4面子と雀頭の組合せ数は字牌4種の母関数と数牌の母関数の3乗を畳み込んだものの s2h の係数であるから 145532220.

求める和了形数はこれらの積であるので、48×145532220 = 6985546560.

箭刻/門风刻/圈风刻/幺九刻

字牌刻子をちょうど 1, 2, 3, 4種含むものの総数は、これは字牌の母関数と数牌の母関数の3乗との間で、面子に対応する変数のみを異なるものになるように置き換えて畳み込むことで数えられ、結果はそれぞれ 1359625820112, 49411551168, 558351360, 1612800. 字牌の対等性を考えれば、これらの値を適宜簡単な有理数倍して加えることによってそれぞれの和了形数を求めることができる。

門風刻/圈風刻/幺九刻は (三风会/小四风会は含めてよいので、字一色/四风会も含めると) それぞれ 1刻子の1/7, 2刻子の2/7, 3刻子の3/7, 4刻子の4/7 であるので、求める値は1種につき 208590061104.

箭刻は (簡単に双箭刻/小三元/大三元を除けるので、字一色のみを含めると) 1刻子の3/7, 2刻子の12/21, 3刻子の18/35, 4刻子の12/35 であるので、求める値は 611219657232.

数牌部分役

刻子系
一色四节高

該当役部分、すなわち4面子の組合せ数は 3(9-4+1)(4C3)4 = 4608.

雀頭部分、すなわち雀頭の組合せ数は (34-4)4C2 = 180.

求める和了形数はこれらの積であるので、4608×180 = 829440.

三同刻

該当役は3色によって構成されるが、数牌3スート分に対応する母関数は対等性・排他性より、特定ランクの刻子を含むものの3乗の和として表すことができ、その手牌14枚以下かつ雀頭1つ以下に対応する項は

576*(132584*s^1*h + 1020*s^1 + 144*s^0*h + 1*s^0)*s^3

これに、字牌に対応する母関数の、5枚以下に対応する項

(1008*s*h + 28*s + 42*s^0*h + 1*s^0)

をかけて、s4h の係数をとれば、求める和了形数は 103947264.

一色三节高

該当役は1色のみによって構成されるので、一般性を失わずにそれがあるスートだと仮定できる。 そのスートに対応する母関数は、各ランクのものについて足し合わせた後にダブルカウント (一色四节高に対応するもの) を引いて与えられ、その手牌14枚以下に対応する項は

(2069564*s^1*h + 93895*s^1 + 16128*s^0*h + 448*s^0)*s^3

これに、2スート一般形と字牌とに対応する母関数の積の、5枚以下かつ雀頭1つ以下に対応する項

(135360*s^1*h + 996*s^1 + 150*s^0*h + 1*s^0)

をかけて、s4h の係数の3倍をとれば、求める和了形数は 3×92858582 = 278575746.

なお、上では一色四节高を1回のみ引いているので、重複のみを避け、結果は一色四节高の和了形数を含む。

三色三节高

三色三节高が形式的に2つ複合した形を三色四节高と呼ぶことにすると、三色四节高を構成する三色三节高はランク差が1である。 また、このとき三色三节高の和了形総数は

Σ三色三节高(和了形総数)-Σ三色四节高(和了形総数)

で与えられる。以下、2つの総和をそれぞれ S, S' とする。

同ランクの三色三节高の排他性より

S = 3![s4h] Σ1<i<9(F(i-1))(F(i))(F(i+1))T

ただし、ここで xiai] f({xi}) は多項式 f({xi}) における Πxiai の係数であり、F(n) は 刻子 nnn を含む、T は字牌一般形の、それぞれ組合せに対応する母関数である。

また、三色四节高の排他性より

S' = 3![s4h] Σ1<i≦7(F'(i-1))(F(i))(F(i+1))T

ただし、上の他に F'(n) は刻子 nnn(n+3)(n+3)(n+3) を含む組合せに対応する母関数である。

したがって、F'(7) ≡ 0 と自然に定めることによって、求める和了形総数は

3![s4h] Σ1<i<9(F(i-1)-F'(i-1))(F(i))(F(i+1))T

これを計算すると、求める和了形数は 3!×76639232 = 459835392.

なお、数学の答案としては最後の (3!で始まる) 式から初めてもよいだろう。

双同刻

双同刻は2組同時にできれば (以下では「又同刻」とよぶ) 両方を計上できるので、ダブルカウントを防ぐ必要があるが、まずは双同刻自体の総数を数える: 求める組合せ数は

3C2 [s4h] Σ1≦i≦9(F(i))2NT - (三同刻の和了形総数)

ただし、ここで N は数牌一般形の組合せに対応する母関数である。

この結果は 42541897344.

又同刻は4つの刻子を含むから碰碰和形で、その組合せ数は (構成ランク数)(構成色数)(雀頭数)(刻子重複度)(雀頭重複度) であるから

(9C2)(3C2)2(34-4)(4C3)4(4C2) = 14929920.

したがって、求める和了形数は 42541897344-14929920 = 42526967424.

幺九刻

111の刻子と999の刻子とについて、それらの含み方4通りそれぞれの組合せ数に対応する母関数 (特定の一方のみを含むもの = 特定の一方を含むもの - 両方を含むもの) の、該当幺九刻に対応する因数 sy におきかえると、4面子以下に対応する項は

どちらも含まないもの
(312039236*h*s^4+30375261*s^4+39601396*h*s^3+2392036*s^3+1636084*h*s^2+61928*s^2+18816*h*s+476*s+54*h+1)
一方のみを含むもの (排他性より、以下の計算の用に供するにはこれらを加えて(=2倍して)よい)
(60681000*h*s^3*y+4788613*s^3*y+3638760*h*s^2*y+172568*s^2*y+56000*h*s*y+1664*s*y+192*h*y+4*y)
両方ともを含むもの
(7192448*h*s^2*y^2+447296*s^2*y^2+158464*h*s*y^2+5696*s*y^2+672*h*y^2+16*y^2)

これらの和を改めて数牌の組合せに対応する母関数とし、3乗して字牌の組合せに対応する母関数をかけると、その yks4-kh の係数は、k = 1, 2, 3, 4 に対して 1029748257540, 29678175360, 280657920, 691200.

これらをすべて加えて、求める和了形数は 1029748257540+29678175360+280657920+691200 = 1059707782020.

TODO: 字牌と一緒に計算

順子系
一色四同顺

該当役部分、すなわち4面子部分の組合せ数は 3(9-3+1)(4C4)3 = 21.

雀頭の組合せ数は (34-3)(4C2) = 186.

求める和了形数はこれらの積であるので、21×186 = 3906.

一色双龙会

和了形数は直接計算可能で、3(4C2)7 = 839808.

一色三同顺

一色三񐺒高と同様にして、求める和了形数は 278575746.

三色双龙会

和了形数は直接計算可能で、3(4C1)12(4C2) = 301989888.

一色四步高

該当役は1色のみによって構成されるので、一般性を失わずにそれがあるスートだと仮定できる。 そのスートに対応する母関数は、排他性より各ランクのものについて足し合わせればよく、その手牌14枚以下に対応する項は

12288*(529*h+75)*s^4

14枚に対応する項は係数をそのまま、12枚に対応する項は係数の (34-9)(4C2) = 150倍を、足し合わせて3倍すれば、求める和了係数は 3×12288×(529×1+75×150) = 434221056.

一色三步高

該当役は1色のみによって構成されるので、一般性を失わずにそれがあるスートだと仮定できる。 そのスートに対応する母関数は、排他性より各ランクのものについて足し合わせて重複分の一色四步高と一色双三步 (タイプ1・2の一色三步高が连六と同居した形 (例: 122333445567)) とに対応する母関数を引けばよく、その手牌14枚以下に対応する項は

16*(27856029*s^2*h+3877615*s^2+4594784*s^1*h+396320*s^1+178704*s^0*h+9936*s^0)*s^3

これと数牌2スート、字牌に対応する母関数とをかけると、その s4h の係数が1色あたりの一色三步高和了形組合せ数となる。

求める和了形数は 3×25391502848 = 76174508544.

清龙

該当役は1色のみによって構成されるので、一般性を失わずにそれがあるスートだと仮定できる。 その母関数と数牌2スート、字牌に対応する母関数とをかけると、その s4h の係数が1色あたりの清龙和了形組合せ数となる。

求める和了形数は 3×38896091136 = 116688273408.

花龙

該当役は3色によって構成されるが、一般性を失わずにそれがある順番の3スートで123・456・789だと仮定できる。 その母関数は、それぞれのランクの順子を含むものの積のとして表すことができ、手牌14枚以下に対応する項は

16384*(1421701*s*h+13702*s+1872*h+16)*s^3

これに、字牌に対応する母関数の、5枚以下に対応する項をかけて、s4h の係数をとれば、花龙1つあたりの和了形組合せ数となる。

求める和了形数は 3!×33844903936 = 203069423616.

三色三同顺

該当役は3色によって構成されるが、数牌3スート分に対応する母関数は対等性・排他性より、特定ランクの順子を含むものの3乗の和として表すことができ、その手牌14枚以下かつ雀頭1つ以下に対応する項は

16384*(9116067*s*h+87594*s+13104*h+112)*s^3

これに、字牌に対応する母関数の、5枚以下に対応する項をかけて、s4h の係数をとれば、求める和了形数は 217494700032.

三色三步高

三色三节高と同様にして、求める和了形総数は

3![s4h] Σ3≦i≦7(F(i-1)-F'(i-1))(F(i))(F(i+1))T

ただし、ここでF(n) は順子 (n-1)n(n+1) を、F'(n) は连六 (n-1)n(n+1)(n+2)(n+3)(n+4) を、それぞれ含む組合せに対応する母関数である。

これを計算すると、求める和了形数は 3!×137173745664 = 823042473984.

一般高

老少副

连六

喜相逢

その他部分役

组合龙

组合龙の対等性と排他性とより、一般性を失わずにある组合龙に固定して考えることができる。 その和了形は147を用いるパターン・258を用いるパターン・369を用いるパターン・字牌のパターンの母関数の積で与えられる。 このとき、字牌のパターンの5枚形のみに全不靠となるパターンを足しておくことで一括して計算を行うことが可能だが、全不靠と面子手との比もあわせて計算する。

これを計算すると、求める和了形数は 3!(5637144576全不靠+23679860736面子手) = 175902031872. (比は2048:8603.)

全体役

清幺九

字牌6種のデータがそのまま和了形数となる。 求める和了形数は 46080一般形+59976七对 = 106056.

绿一色

字牌3種と数牌3種との母関数の積がそのまま和了形数をあらわす。 3種の和了形式をそれぞれ計算して、求める和了形数は 146082一般形+59976七对-18般/七对 = 206040.

字一色

字牌7種のデータがそのまま和了形数となる。 求める和了形数は 161280一般形+652728七对-0 = 814008.

全双刻

和了形数は直接計算可能で、12(12-1C4)(4C3)4(4C2) = 6082560.

全大/全中/全小

数牌3種の母関数の3乗より、求める和了形数は 63288972一般形+14271984七对-2659500般/七对 = 74901456.

混幺九

一般形と七对の複合形は存在しないので、1牌あたりの母関数 (4*s + 6*h + 1), (1*t^2 + 6*t^1 + 1*t^0) の13乗の和をとればよい。 求める和了形数は 9884160一般形+563228952七对 = 573113112.

全带五

全帯五1スートの母関数の3乗より、求める和了形数は 1116611148.

十三幺

和了形数は直接計算可能で、13(4C1)12(4C2) = 1308622848.

清一色

清一色解析の3倍より、求める和了形数は 3×(440593684一般形+14271984七对-5614164般/七对) = 1347754512.

推不倒

数牌5種・3種・字牌6種の母関数の積より、求める和了形数は 920196176一般形+1105196664七对-6377904般/七对 = 2019014936.

四暗刻/碰碰和

和了形数は直接計算可能で、34(34-1C4)(4C3)4(4C2) = 2137006080.

大于五/小于五

数牌4種の母関数の3乗より、求める和了形数は 2884311816一般形+266542056七对-17366760般/七对 = 3133487112.

混一色

数牌と字牌それぞれについて、定数項を0とした母関数どうしの積を3倍する。 求める和了形数は 3×(7093683926一般形+3570642936七对-19886118般/七对) = 31933322232.

全带幺

全带幺の1/2スートの母関数の6乗と字牌の母関数との積より、求める和了形数は 34778834160.

五门齐

数牌と字牌3種・4種それぞれについて、定数項を0とした母関数の積を求める。 字牌を2種使うことより、一般形と七对の複合はない。

したがって、求める和了形数は 72593123328一般形+272456809920七对 = 345049933248.

断幺

数牌7種の母関数の3乗より、求める和了形数は 899686609236一般形+35126796744七对-322486740般/七对 = 934490919240.

缺一门

数牌の母関数の定数項を0としたものの2乗に字牌の母関数をかけ、最後に3倍すると容易に上位役がすべて除かれる。

求める和了形数は 3×(874617037524一般形+135772594632七对-290527668般/七对) = 3030297313464.

无字

その他

连七对

和了形数は直接計算可能で、3×3(4C2)7 = 2519424.

九莲宝灯

「14枚目」によらず九莲宝灯として扱われるものと仮定する。 和了形数は直接計算可能で、3(4C1)6(4C3)(2(4C1)(4C4)+7(4C2)(4C3)) = 8650752.

七星不靠

和了形数は直接計算可能で、3!(9C7)(4C1)14 = 57982058496.

全不靠

全不靠のみの和了形数は 3!(9C8)(7C6)(4C1)14 = 101468602368.

组合龙との複合形は组合龙の項より 3!×5637144576 = 33822867456.

求める和了形数はこれらの和であるので、135291469824. (七星不靠:全不靠:组合不靠 = 12:21:7)

七对

数牌3スート・字牌に対応する母関数を畳み込めばよいが、より単純に1牌あたりの母関数 (1*t^2 + 6*t^1 + 1*t^0) の34乗とするのがより簡単である。 求める和了形数は 1569298171584.