Создание расписания турниров

Создание расписания турниров

Количество участников соревнований

 

Отвлечемся от высшей математики и обратим внимание на спорт.  Сотрудники, с которыми я работаю, иногда устраивают турниры по теннису и нередко у них возникает задача  написать график "боёв", так что бы каждый спортсмен играл с каждым.

Такая система турнира называется круговой.

Каждый участник по очереди играет со всеми остальными. Побе­дителем считаем участника, выигравшая наибольшее число встреч. Одновременно выявляют (по числу выигранных встреч) и последующие места, занятые другими участиками.

Очевидный плюс: При таком способе наи­более объективно выявляется победитель. 

Недостаток: Турнир может быть очень растянут по времени. Особенно, если будет два  и более кругов.

В интернете чаще всего используются так называемые таблицы Бергера, но это не наш метод.

Итак, что бы составить правильно график соревнований, по такой схеме,  существуют специальные формулы о которых и будет рассказано.

Итак исходные данные: N - количество участников.

Что бы каждый из них сыграл по одному разу с остальными, нам необходимо провести N-1 туров.

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

Анализ полученной  таблицы следующей:

По горизонтали выделенным шрифтом показаны половина участников соревнований.

Каждый ряд таблицы это  отдельный раунд.

 

Ограничение этого бота  по количеству.. Давайте исходить из количества участников не более 50.  Но математически нет никаких ограничений, можно и на две сотни сделать.

 

Рассмотрим группу из 7 участников:

Пишем семь и получаем таблицу

1 2 3 4
7 6 5 8
8 7 6 5
2 1 7 6
3 8 1 7
4 3 2 1
5 4 8 2
6 5 4 3

 

Участников всего 7,  а в таблице фигурирует спортсмен под номером 8. Это виртуальный участник

Раундов что бы определить  победителя будет тоже семь ( это количество строк)

Теперь что мы видим: 

в первом раунде  участник под номер 1 играет с участником под номером 7,  2 с 6, 3 с 5 и 4 участник с  "виртуальным" восьмым. То есть 4 участник в первом раунде не участвует.

Во втором раунде, не участвует уже 1 спортсмен,  второй играет с седьмым,  третий с шестым, а четвертый с пятым.

И так в раждом раунде.

Если мы посмотрим каждый столбец, то убедимся что каждый  участник  играет по одному разу  с каждым, кроме самого себя.

 

Эту таблицу легко скопировать в Excel, заменить цифры, фамилиями участников, или команд.

Последоватательность раундов ( строки) можно тоже менять как угодно.

И в конечном итоге сделать красивый плакат, турнира или соревнования.

Надеюсь, этот калькулятор кому то поможет.

Поиск по сайту