配牌時向聴数¶
概要¶
すべての手牌について向聴数を計算しようとすると計算量が大きくなってしまう. 事前に数牌と字牌の向聴数を計算するためのパラメータについて集約し, 同じパラメータがいくつ存在するかをメモしておく. 手牌の枚数が予め決められた数になるようなすべてのパラメータの組み合わせを全探索する. このとき向聴数を計算しながら同じ向聴数となる手牌の数も計算することで計算量を小さくできる. また, 数牌の色どうしを入れ替えても向聴数は変わらない事実を利用することでさらに計算量を小さくできる.
ソースコード¶
shanten-dfs.cppを参照.
出力:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
配牌時(手牌の枚数が 14 枚のとき)向聴数の平均値は3.15594
である.