![]() |
|
![]() ![]() ![]() |
|
BlackWolf |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 2.4.2003 Репутация: нет Всего: нет |
Есть ли какой-то математический алгоритм проведения жеребьевок команд?
Например: Есть n - команд, все команды выступают на одном поле. каждая команда должна провести встречи со всеми другими командами. Задача: Нужно найти порядок проведения встреч между командами таким образом чтобы ни одна команда не играла несколько игр подряд, т.е. чтобы между играми одной команды были паузы. Достоверно известно: Формула количества встреч: (n*(n-1)) / 2 Также проверил что для 4 команд рассчитать порядок без "передышек" нельзя. Если кто может помочь очень прошу... |
|||
|
||||
pike |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 4.3.2003 Репутация: нет Всего: нет |
Будем обозначать каждую игру числом из 0 и 1. Позиция цифры в числе - № команды.
Сначала распределяем пары 11 (рядом стоящие), потом 101 и т.д. Алгоритм довольно просто составляется. Единственная проблема (легко решаемая) - вставить последнюю (10000001). А ее вставляем между первыми! Смотри пример! 11000000 00110000 10000001 00001100 00000011 01100000 00011000 00000110 10100000 01010000 00101000 00010100 00001010 00000101 10010000 01001000 00100100 00010010 00001001 01000100 10001000 00100010 00010001 10000100 01000010 00100001 10000010 01000001 |
|||
|
||||
neutrino |
|
|||
![]() Gothic soul ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 3041 Регистрация: 25.3.2002 Где: Верхняя Галилея, Кармиэль Репутация: нет Всего: 62 |
Хмм... Я посмотрел решение выше, и подумал, может быть прокатит вот так: если у нас количество команд n, то за i возьмем номер одной команды, а за j другой, далее:
i=0, j=0; n mod 2 = 0 => i=(i+1) mod n, j=(j+3) mod n n mod 2 != 0 => i=(i+2) mod n, j=(j+4) mod n игра(i, j) Другими словами, если количество команд четное, то воспользоваться первой формулой, иначе второй. -------------------- The truth comes from within ... Покойся с миром, Vit |
|||
|
||||
pike |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 4.3.2003 Репутация: нет Всего: нет |
...нет, не получится i и j скорее всего совпадут. Или я что-то не понял?
|
|||
|
||||
neutrino |
|
|||
![]() Gothic soul ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 3041 Регистрация: 25.3.2002 Где: Верхняя Галилея, Кармиэль Репутация: нет Всего: 62 |
Приветствую!
Я написал программу и все заработало!!! Но! Потом посмотрел и оказалось, что я всего лишь повторил алгоритм господина pike ![]() ![]()
Esli Вы запустите программу, то увидете сначала список турниров между номерами команд и матрицу количества игр. Ни одного повторения. Браво, pike !!! -------------------- The truth comes from within ... Покойся с миром, Vit |
|||
|
||||
Lexa_ch |
|
|||
Unregistered |
А если требуется составить жеребьевку с учетом туров (т.е. составить расписание игр для какого-либо числа команд наподобие футбольных, хоккейных и т.д. расписаний). В каждом туре команда играет только один раз, число игр в туре = кол-во команд/2, число туров - кол-во команд-1 (для однокругового турнира). Если не тяжело, приведите код или подробный алгоритм.
|
|||
|
||||
Ostalex |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 7.9.2010 Репутация: нет Всего: нет |
up. то, что сейчас и мне нужно. пожалуйста, если кто может подскажите, не дайте потратить время на го*нокод) |
|||
|
||||
nmn |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 593 Регистрация: 26.11.2005 Репутация: нет Всего: 1 |
||||
|
||||
Ostalex |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 7.9.2010 Репутация: нет Всего: нет |
||||
|
||||
nmn |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 593 Регистрация: 26.11.2005 Репутация: нет Всего: 1 |
не очень понял я всю схему похоже
вот смотрите: если в одном туре команда играет 1 раз, то можно их просто разбить на пары, тогда получим необходимое количество игр в туре и каждая команда будет играть только 1 раз, а что дальше? |
|||
|
||||
Ostalex |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 7.9.2010 Репутация: нет Всего: нет |
вот пример:
http://www.fc-anji.ru/calendar.php здесь команда <анжи> выступает то в гостях, то дома. получается почти "шахматка", т.к. не всегда совпадает. там есть ссылка и на весь календарь по всем командам. вот реализацию такого календаря какраз и нужно сделать. но пока без успехов |
|||
|
||||
nmn |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 593 Регистрация: 26.11.2005 Репутация: нет Всего: 1 |
не нашел ссылку на весь календарь, но там в туре всего лишь одна игра
вобщем расскажите подробно что надо |
|||
|
||||
Ostalex |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 7.9.2010 Репутация: нет Всего: нет |
заюзал алгоритм, в котором есть ограничение: команд может быть только 2^n, но это компенсируется скоростью работы
|
|||
|
||||
nmn |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 593 Регистрация: 26.11.2005 Репутация: нет Всего: 1 |
а можно ссылку?
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Алгоритмы" | |
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Алгоритмы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |