from itertools import combinations
excluded = {10, 13, 25}
all_numbers = [n for n in range(1, 36) if n not in excluded]
conditions = [
(2, {6,12,26}, 2),
(3, {7,14,15,17,20,34}, 2),
(4, {4,6,9,12,18,19,21,22,26,29,33}, 3),
(5, {1,9,12,23,32}, 2),
(6, {8,14,18,19,20,22,23,24,27}, 2),
(7, {3,8,19,20,24,26,27,33}, 2),
(8, {11,19,22,31}, 2),
(9, {2,11,19,21,26}, 2),
(10, {12,27}, 1),
(11, {4,9,12,17,21,23,26,27,32}, 2),
(12, {1,4,15,19,29,32,34}, 2),
(13, {5,9,11,28,30,31}, 2),
(14, {8,23,27,35}, 1),
(15, {1,5,7,8,15,16,23,24,27,28,30,35}, 3),
(16, {2,4,7,9,14,15,17,19,21,29,31,34,35}, 3),
(17, {8,12,16,18,23,27,30,33}, 2),
(18, {1,2,3,8,9,12,18,20,21,23,28,33}, 4),
(19, {1,2,6,11,17,21,26,32}, (1,3)),
(20, {5,7,12,15,16,19,29,34,35}, 3),
(21, {3,5,7,8,11,18,19,21,22,24,26,28,33}, 3),
(22, {1,6,16,22,28,32}, 2),
(23, {5,7,19,26,27,30,34}, 2),
(24, {2,7,9,11,17,19,20,22,24,26,35}, 4),
(25, {8,16,18,27,33}, 2),
(26, {3,4,12,19,23}, 2),
(27, {1,3,14,15,23,32}, 2),
(28, {6,9,11,20,31,33}, 2),
(29, {4,15,24,34}, 2),
(30, {6,14,18,23,30}, 2)
]
def is_valid(comb):
for cond_id, nums, limit in conditions:
overlap = len(nums & set(comb))
if isinstance(limit, tuple):
if not (limit[0] <= overlap <= limit[1]):
return False
else:
if overlap > limit:
return False
return True
valid_combs = []
for comb in combinations(all_numbers, 5):
if is_valid(comb):
valid_combs.append(comb)
print(f"找到有效组合数量:{len(valid_combs)}")
print("前5个示例组合:")
for i in range(5):
print(sorted(valid_combs[i]))