清一色のパターン
清一色のパターンの列挙を行います。これは深さ優先探索で実現できます。
コード
import copy cnt = 0 hands = [] def dfs_hand(n, m, a, hand): """ n : int 深さ優先の深度 m : int 手牌の最大枚数 a : int 現在の手牌の枚数 hand : list of int 各数字の枚数 0 ~ 4 """ global hands if n == 9: if a == m: hands.append(copy.deepcopy(hand)) return for i in range(5): if a + i <= m: hand[n] = i dfs_hand(n + 1, m, a + i, hand) hand[n] = 0 else: return dfs_hand(0, 14, 0,[0] * 9)
コメント