Алгоритм планирования для кругового турнира?

Недавно я изучал материал и встречался с Дональдом Кнутом. Но я не нашел подходящий алгоритм для решения своей задачи.

Проблема У нас есть лига с n игроками. каждую неделю у них есть матч друг с другом. через n-1 недели каждая команда боролась друг с другом. в день бывает n / 2 матчей. но одна команда может драться только раз в неделю. если мы сгенерируем комбинацию (n / k), мы получим все комбинации ... (при условии, что k = 2), но мне нужно привести их в правильном порядке.

Мое первое предложение было ... не лучшим. я просто сделал массив, а затем пусть компьютер попробует, найдет ли он правильный путь. если нет, вернитесь к началу, перетасуйте массив и сделайте это снова, ну, я запрограммировал его на PHP (n = 8), и то, что выходит, работает, но занимает много времени, а для n = 16 это дает мне тайм-аут тоже.

Я подумал, может быть, мы найдем алгоритм, или кто-нибудь знает книгу, посвященную этой проблеме.

И вот мой код: http://pastebin.com/Rfm4TquY

12
задан Gareth Rees 11 July 2011 в 10:17
поделиться