配牌のパターン
麻雀の配牌は親は14枚,子は13枚です.麻雀の牌の種類は34で各4枚ずつあります.このことを元に数学的に配牌のパターン数を求めます.
形式的べき級数による定式化
集合 を
とします.この34個の集合から1つずつ元を選び,
を満たすような選び方は何通りあるかは親の配牌のパターン数に一致します.
この数は, の
の係数です.詳しくは下のサイトを参照してください.
[多項式・形式的べき級数](1)数え上げとの対応付け | maspyのHP
結果
親の配牌のパターンは326520504500通りで,子では98521596000通りあります.
コード
List<int> mul(List<int> f, List<int> g, int n) { List<int> ret = List.generate(n, (index) => 0); for (int i = 0; i < f.length; i++) { for (int j = 0; j < g.length; j++) { if (i + j >= n) break; ret[i + j] += f[i] * g[j]; } } return ret; } void main(List<String> args) { List<int> f = [1, 1, 1, 1, 1]; List<int> h = mul(f, f, 15); for (int i = 0; i < 32; i++) { h = mul(f, h, 15); } print(h); }