Niedawno studiowałem i spotykam się z Donaldem Knuthem. Ale nie znalazłem odpowiedniego algorytmu dla mojego problemu.Algorytm planowania dla turnieju round-robin?
Problem Mamy ligę z graczami. co tydzień mają jeden mecz z drugim. w ciągu 1 tygodnia każda drużyna walczyła ze sobą. są n/2 mecze dziennie. ale jedna drużyna może walczyć tylko raz w tygodniu. jeśli wygenerujemy kombinację (n/k), otrzymamy wszystkie kombinacje ... (zakładając, że k = 2), ale muszę je przynieść we właściwej kolejności.
Moja pierwsza sugestia była ... nie najlepsza. Właśnie utworzyłem tablicę, a następnie pozwoliłem komputerowi spróbować, jeśli znajdzie właściwą drogę. jeśli nie, wróć do początku, przetasuj tablicę i zrób to ponownie, cóż, zaprogramowałem ją w PHP (n = 8), a co wychodzi działa, ale zajmuje dużo czasu, a dla n = 16 daje mi to timeout także.
więc pomyślałem, czy może znaleźć algorytm, czy ktoś zna książkę, która obejmuje ten problem.
A oto mój kod: http://pastebin.com/Rfm4TquY
[Zobacz Wikipedia] (http://en.wikipedia.org/wiki/Round-robin_tournament#Scheduling_algorithm) –