私は、次のコードサンプルPythonのバランススポーツスケジュール生成
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}
あるキーは、チームであり、値はホームゲームの数です。 Iリーグで10のチームを持っている場合、私はいくつかのチームはわずか4を得るために5自宅や他の人を得ることを期待が、いくつかは、5を取得する他の人が取得している間だけ3