lgoritmo de agendamento para um torneio round-robi

Recentemente, estudei coisas e me encontrei com Donald Knuth. Mas não encontrei o algoritmo certo para o meu problema.

O problem Temos uma liga com n jogadores. toda semana eles se combinam. em n-1 semanas, todos os times lutaram entre si. há n / 2 correspondências por dia. mas uma equipe só pode lutar uma vez por semana. se gerarmos uma combinação (n / k), obteremos todas as combinações ... (assumindo k = 2), mas preciso trazê-las na ordem cert

Minha primeira sugestão foi ... não a melhor. Acabei de criar uma matriz e deixo o computador tentar se ele encontra o caminho certo. caso contrário, volte ao início, embaralhe a matriz e faça-a novamente, bem, eu a programei em PHP (n = 8) e o que sai funciona, mas leva muito tempo, e para n = 16, isso me dá um tempo limite também

Então eu pensei se talvez encontrarmos um algoritmo, ou alguém conhece um livro que cubra esse problem

E aqui está o meu código:http: //pastebin.com/Rfm4Tqu

questionAnswers(1)

yourAnswerToTheQuestion