Как разделить игроков на подразделения? - PullRequest
1 голос
/ 17 сентября 2010

Допустим, у нас есть игра для двух игроков, в которой всегда побеждает один игрок (ничья не может быть ничьей).

Вопрос: Как разделить n игроков в k дивизиях, если мы ничего не знаем об их навыках?Каждый дивизион должен состоять из одинакового количества игроков, а лучшие игроки должны быть в первом дивизионе, худшие игроки в последнем дивизионе и так далее.Существует дополнительное ограничение - игрок не может играть в более чем p игр (p больше, чем k).

PS: Этот вопрос вдохновлен starcraft battle.net.

Ответы [ 2 ]

1 голос
/ 18 сентября 2010

Лучшее, что вы можете сделать, - это использовать швейцарский предварительный раунд, чтобы разобраться в них, и тогда вы узнаете их умения и сможете соответственно разделить их на деления.

Я делаю это , и это прекрасно работает.

0 голосов
/ 17 сентября 2010

Можете ли вы сделать какие-либо замечания об игроках, прежде чем разделить их на подразделения? Если нет, у вас нет информации, и поэтому вы можете выполнять только случайные задания, а затем отрегулируйте, в каком отделе они находятся после нескольких игр. Если мы абсолютно ничего не знаем об игроках, просто назначьте игрока n на деление n мод k .

«После одного раунда игр» (это могут быть игры p , о которых вы упомянули), вероятно, внутри каждого подразделения будет внутренний рейтинг. Так как каждое деление (по существу) случайное, люди, которые хорошо вошли в одно (случайное) деление, вероятно, будут принадлежать к «более высокому» подразделению, чем те, кто поставил плохо. Таким образом, после начального раунда сортируйте каждого игрока в соответствии с «пока выигрывает», затем присваивайте n / k сначала первому делению, затем следующие n / k второму делению и т. Д.

...