我有以下代码示例
import itertools
import random
set_size = 2
schedule = set()
teams = range(10)
for comb in itertools.product(teams, repeat=set_size):
comb = sorted(list(comb))
if len(set(comb)) == set_size:
schedule.add(tuple(comb))
schedule = list(schedule)
random.shuffle(schedule)
home = {}
for game in schedule:
if home.has_key(game[0]):
home[game[0]] += 1
else:
home[game[0]] = 1
print home
它生成了一个有效的时间表,但问题是一些球队在主场比赛中非常不平衡。
例如,在家打印是
{0: 5, 1: 3, 2: 5, 3: 5, 4: 5, 5: 5, 6: 5, 7: 5, 8: 4, 9: 3}
关键是球队,价值是主场数。如果我在一个联赛中有 10 支球队,我预计有些球队将获得 5 支主场,而其他球队仅获得 4 支球队,但有些球队获得 5 支球队,而其他球队仅获得 3 支球队