Algoritmo de programación para un torneo round-robin?

Hace poco estudié cosas y me encontré con Donald Knuth. Pero no encontré el algoritmo correcto para mi problema.

El problem Tenemos una liga con n jugadores. cada semana tienen un partido entre ellos. en n-1 semanas cada equipo luchó entre sí. Hay n / 2 partidos por día. pero un equipo solo puede pelear una vez en una semana. si generamos una combinación (n / k) obtenemos todas las combinaciones ... (suponiendo que k = 2) pero necesito ponerlas en el orden correcto.

Mi primera sugerencia fue ... no la mejor. Acabo de hacer una matriz y luego dejo que la computadora lo intente si encuentra el camino correcto. si no, regrese al inicio, baraje la matriz y vuelva a hacerlo, bueno, lo programé en PHP (n = 8) y lo que sale funciona, pero tome mucho tiempo, y para n = 16 me da un tiempo de espera también

Así que pensé si tal vez encontramos un algoritmo, o si alguien conoce un libro que cubra este problema.

Y aquí está mi código:http: //pastebin.com/Rfm4Tqu

Respuestas a la pregunta(1)

Su respuesta a la pregunta