Я работаю в Ruby, но я думаю, что этот вопрос лучше всего задает агностик языка. Можно предположить, что у нас есть доступ к основным функциям списка/массива, а также к «случайному» генератору чисел. Вот что я хотел бы быть в состоянии сделать:Алгоритм выбора случайных пар, расписание матчей
Учитывая коллекцию n
команд, с n
даже,
- Случайным пара каждой команды с противником, таким образом, что каждая команда является частью ровно один пара. Назовите это
ROUND 1
. - Случайным генерируют
n-2
последующие раунды (ROUND 2
черезROUND n-1
) таким образом, что:- Каждый раунд обладает тем же свойством, что и первый (каждая команда является членом одной пары), а
- После всех раундов, каждая команда столкнулась с любой другой командой ровно один раз.
Я полагаю, что алгоритмы делают именно это должно быть хорошо известно, но как-самоучка кодировщик у меня возникают проблемы, выяснить, как найти их.
Это может сработать, но кажется, что процесс детерминирован после того, как установлен первый раунд. Я хочу случайности (в пределах ограничений) на каждом этапе. (Очевидно, что окончательный раунд будет детерминированным.) – hoffm
Также, как команды в каждом списке когда-либо будут играть друг с другом? Возможно, я не понимаю? – hoffm
Нет, ты прав Хоффм. Команды никогда не будут сталкиваться: (/ – Alan