私はrandom.shuffleを追加する場合、私は(..同じスケジュールにあなたがそれを実行するたびに発生し、次のPythonのランダムなスポーツスケジュールジェネレータ
Generating natural schedule for a sports league
を発見した)そこにそれはまだあまりにも予測可能です。以下は
は、代わりにランダムでそのポストから私の簡単な編集であり、私は結果を見..import random
def round_robin(units, sets = None):
""" Generates a schedule of "fair" pairings from a list of units """
count = len(units)
sets = sets or (count - 1)
half = count/2
for turn in range(sets):
left = units[:half]
right = units[count - half - 1 + 1:][::-1]
pairings = zip(left, right)
if turn % 2 == 1:
pairings = [(y, x) for (x, y) in pairings]
units.insert(1, units.pop())
yield pairings
teams = range(5)
random.shuffle(teams)
schedule = list(round_robin(teams, sets = len(teams) * 2 - 2))
for week in schedule:
for game in week:
if 0 in game:
print game
は、時にはチームもお互いに再生されませんようだ奇妙な結果を得る
(0, 4)
(4, 0)
(0, 2)
(0, 4)
(4, 0)
(0, 2)
私の質問は、私はPythonでランダムなスケジュール発電を行うか、私がすでに持っているもの修正することができますどのように...です。
はかなり私は4つのチームを取ると、彼らは一度お互いをプレイ遊びの3週間で出てくる必要があります。それとも遊びの5週間のある5つのチームが好きで、それらはすべて、一度お互いを演じるが、1つのチームが、私は、各チームが他のチームでプレーする必要があることを想定しています週
私が問題だかわからないんだけど。 – Trufa
申し訳ありません...下 – Mike