Я пытаюсь создать расписание для лиги, в которой есть N
игроков, где N%2=0
Скажем, например, я хочу создать расписание для 6 игроков (A, B, C, D, E, F)
, составляющих разные пары.
Считайте AB != BA
и должны отслеживаться как отдельные пары
При 6 игроках должно быть 30 разных пар. Количество парных комбинаций pairsCount / (N / 2)
Ни одна из пар следующих соревнований не может совпадать, например: если в конкурсе 1 была пара AB, то в конкурсе 2 не должно быть AB.
(AB) (CD) (EF)
(AC) (BE) (CF)
...
(BA) (DC) (FE)
...
Я пробовал следовать этому решению
Алгоритм для генерации всех перестановок пар без повторения < / а>
Проблема в том, что пары следующего конкурса такие же, как и в предыдущем конкурсе. Надеюсь, вы поймете мою проблему и покажете мне хороший пример создания такого расписания.
pairs
, но теперь пытаетесь правильно их заказать? Где два игрока не должны встречаться две недели подряд? - person shapiro yaacov   schedule 16.04.2020BA
то же самое, чтоAB
? Я думаю, что в целом с такими проблемами порядок не имеет значения в конкретной группе. В противном случае вы будете считать одну и ту же комбинацию несколько раз. Всего должно быть только 15 результатов. Если это правильно, то это известная проблема. Это называется разбиением на группы одинакового размера. Я написал пакет вR
, который решает подобные проблемы с помощью функцииcomboGroups(v = c("A", "B", .. "F"), numGroups = 3)
. См. stackoverflow.com/a/57861934/4408538 - person Joseph Wood   schedule 17.04.2020