алгоритм планирования, турнир с круговым турниром с несколькими командами / игра - PullRequest
1 голос
/ 13 февраля 2012

Алгоритм кругового турнира работает хорошо, когда в каждой игре встречаются только команды. Но как реализовать это для спортивных состязаний или игр, где более чем две команды встречаются в одной игре. Например, пейнтбольный турнир, в котором от 2 до n команд встречаются в 2 - n играх. Сохраняя при этом ограничение, что все команды должны быть домашними командами один раз и только один раз, если это возможно (если команды не могут быть равномерно разделены, то допустимо, чтобы как можно меньше команд не было домашней команды)

Есть идеи? Приводятся количество команд, количество игр. Возможно, количество команд на игру может быть задано.

1 Ответ

2 голосов
/ 13 февраля 2012

Если вам нужно 3 команды для игры, вы можете использовать кубическую репрезентацию (так что для n команд в игре это будет n-гиперкуб). Это, конечно, означает, что каждая возможная пара команд будет играть с каждой командой - это много игр. Всего игр, сыгранных для каждой команды, составляет (n-1) (n-2) / 2. Общее количество когда-либо сыгранных игр составляет n * (n-1) (n-2) / 3! (3 - количество команд в одной игре). Таким образом, вы можете иметь (n-1) (n-2) / 3! играет, где каждая команда играет как дома. Таким образом, в общем, если у нас есть k команд, играющих за одну игру, общее количество игр на одну команду составляет (n-1)! / (N-k)! (K-1) !. Всего игр n! / (N-k)! K !, и вы можете иметь (n-1)! / (N-k)! K! в игры играют как дома.

...