Алгоритм C # для назначения матчей между командами в спорте - PullRequest
0 голосов
/ 03 сентября 2010

Возможное дублирование: Помогите мне выяснить алгоритм случайного планирования с использованием Python и PostgreSQL

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

Примечание -> Иногда оно может не работать, поэтому вы можете иметь неравные числа.Любая помощь приветствуется.

Ответы [ 3 ]

3 голосов
/ 03 сентября 2010

См. Эти перестановка алгоритмы

Работает ли это для вас: Фишер-Йейтс шаффл

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

Я думаю, что вы можете использовать максимальное совпадение в алгоритме двудольного графа для этого (см., Например, здесь ), который выполняется за полиномиальное время.

Мы представим вашу проблему, назначивкаждая команда, T, 8 вершин (Th1, ..., Th8) в «домашнем» подмножестве вершин и 8 вершин (Ta1, ..., Ta8) в «выездном» подмножестве вершин.

Теперь мы ищем максимальное совпадение между «домашним» и «отсутствующим» подмножествами так, чтобы каждое ребро (H, A) в сопоставлении удовлетворяло свойству того, что H находится в «домашнем» подмножестве, «A"находится в подмножестве" вдали ", а H и A принадлежат разным командам.

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

Есть хороший простой способ создания круговой схемы здесь .Во втором раунде вы можете повторить раунд-робин и добавить обмен домой и обратно.

Если у вас нечетное количество команд, вы просто используете фиктивную команду, которая дает противнику прощание в определенном раунде, что приводит к дополнительному раунду.Вы можете распределить этот дополнительный раунд среди других раундов, если вы предпочитаете давать двойные заголовки, а не пока.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...