Форум OlegON > Компьютеры и Программное обеспечение > Операционные системы и программное обеспечение > Программирование

Построение алгоритма жеребьевки, нужна помощь... : Программирование

27.04.2024 7:38


28.08.2015 22:34
twix
 
Погугли турнирные таблицы ногомяча со всеми группами - ближе будет к тому, что требуется ТСу.
28.08.2015 23:04
MWWRuza
 
Цитата:
OlegON я подразумевал, что соревнование строится аналогично такой схеме, нет?
Нет... У нас все завязано на четыре... Четыре отборочных тура, с количеством боев в каждом туре - число участников(общее, всего) деленное на 4. С распределением остатка от деления с помощью стыковых боев.
Далее, после отборочных туров, идут финалы(три боя), в которые выходит первая четверка по итогам отборочных туров. Там никакой жеребьевки не требуется - просто по занятым местам после отборочных туров, распологаются стартовые позиции с лева на право. В каждом следующем финальном бою, спортсмены сдвигаются вправа на одну позицию(что-бы не летать на одной ленте(читай - с одними судьями)). Поэтому, в рамках текущей задачи, финалы нас не интересуют совсем - там и так все просто и понятно...
Проблема развести отборочные туры...
28.08.2015 23:26
MWWRuza
 
Цитата с rccombat:
Цитата:
А я вот лично не доволен - жеребьева на этапе была ни в "...у" , 2 тура отлетал с Диденко и 3 с Ворфоломеевым ни против одного или другогоу меня "вопросов" нет, НО САМ ФАКТ!!!!
Парируйте...
_________________
С уважением.




rememba



Зарегистрирован: 07.09.2009
Сообщения: 103
Откуда: Лыткарино, Мос. обл.
Добавлено: Пн Авг 24, 2015 1:20 pm Заголовок сообщения:

--------------------------------------------------------------------------------

Что понравилось ?
Все. Организация, гостеприимство, атмосфера, юмор лился рекой )
Коровы на поле, арбузы. Счастье есть. Вечер прошел под лозунгом " даешь этапы в Волгограде каждый год" )))) и не один раз ))
Что огорчило ( не касается организации и проведения этапа ) :
4 тарана у меня, в каждом бою по тарану и в итоге 5 место, что конечно же обидно чуть чуть. + все таки на обратной дороге сломался опель нашего самого доброго пилота олега- вытекло все масло ( 5 канистр, залитые постепенно )и в конце оборвался ремень генератора и 60 км эвакуатора ((
Жеребьевка не айс, согласен с лехой. Надо софт доработать !!!))) Но это мелочи, Гена и Алиса Спасибищще большое !!
А это я "Парирую":

Цитата:

Зарегистрирован: 21.05.2007
Сообщения: 794
Откуда: Руза
Добавлено: Пн Авг 24, 2015 6:13 pm Заголовок сообщения:

--------------------------------------------------------------------------------

Змий моторный писал(а):
А я вот лично не доволен - жеребьева на этапе была ни в "...у" ,
*********************************
Парируйте...


А что тут парировать... Согласен на все сто... Блок программы, занимающийся именно жеребьевкой, надо делать заново... Когда это писалось, этапы были от 30 пилотов, и команд много... А сейчас?
В данный момент, программа жеребьит каждый тур в отдельности, с учетом предыдущих туров, на основании генератора случайных чисел и учитывая три критерия - ленты(безусловно), команды(отключаемо), и пресловутые повторы(тоже отключаемо)... В Волгограде изначально было понятно, что не разведется при всех критериях - 25 человек, это 6 боев в туре, а в одной из команд - 7 пилотов... Поэтому, "Разводить команды" пришлось снять сразу, начиная со второго тура... А оно отключается не для одной "многочисленной" команды, а для всех сразу... Поэтому, пришлось руками распихивать всех кого куда можно, тут уж не до повторов... А времени на это никто не дает - после построения, команда "Начало стартов через 10 минут..." А что касается того, "что проще руками развести, мы же в спорте разводим!"... У меня слов нет... Ты, Леша, попробуй развести, чтобы все учесть, хотябы два тура - я уже не говорю про третий и четвертый... И засеки время, сколько провозишься... Справишься? Тогда разведи третий, с учетом первых двух... За четвертый, я вообще молчу, это не реально.

Буду переделывать программу, на другой принцип вообще... Жеребьить сразу в одной таблице все четыре тура, чтобы получить матрицу с минимальными повторами и пересечениями, а потом распихивать получившийся результат по турам, с учетом стыковых боев... Должно лучше получиться, но, сложнее...

PS Еще раз повторюсь - в лучшие времена это было нафик не нужно - и так все разводилось, ну максимум, в крайнем, четвертом туре мог быть один-два повтора, а сейчас, когда народу с гулькин хрен, это уже не работает
Это пара фраз с профильного форума... А сколько говна я выслушал на поле... Поэтому, и занялся конкретно...
28.08.2015 23:32
MWWRuza
 
Вот, кстати, главный судья прошедших соревнований меня поддержал, приятно, но, мне, как автоу этого софта не легче...

Цитата:



Зарегистрирован: 10.12.2003
Сообщения: 1270
Откуда: г. Самара
Добавлено: Пн Авг 24, 2015 7:58 pm Заголовок сообщения:

--------------------------------------------------------------------------------

Очень хорошо помню то время, когда жеребили руками без компа. Это был тихий ужас - долго, не справедливо, постоянные споры и переделки. По времени перед каждым туром занимало не менее получаса. Ни о каких современных критериях жеребьевки и речи не было. А вот потом появилась программа Степуры, а затем уже более продвинутая версия Влада.

Надо сказать, при многочисленной команде проблемы были всегда. Думается, если количество пилотов в команде более трех, ничего страшного нет, если будут воевать между собой. а если не хотят, пусть на несколько команд делятся) Гораздо важнее что бы все за соревнования были на разных лентах и как можно меньше в повторных боях встречались.
_________________
г.Самара
07.09.2015 21:37
MWWRuza
 
Цитата:
OlegON Что касается сути вопроса, то основная сложность в том, что когда ты все понятно опишешь, то сам поймешь, что нужно сделать :) Поэтому тут никого нет, что понять суть соревнований и ранжирования сейчас, я пока, например, особо не могу.
Вот, расписал все, разложил по полочкам, уж незнаю, как еще... Честно говоря, писал как раз для того, что-бы привлечь к решению проблемы человека, далекого от предмета, но зато повернутого на математике... За одно, решил и сюда выложить, может кто-то что-то интересного предложит...
13.09.2015 22:26
MWWRuza
 
Глухо... Как в танке...
Я уже на CyberForum создал тему, в разделе Математика/Комбинаторика... За три дня, ни одного ответа
Пока "оттачивал" свой алгоритм, выяснил, что на конечный результат очень сильно влияет начальное расположение строк в таблице! Попробовал найти закономерность - не получилось... Сортировка по размерам команд(в обе стороны - и по убыванию, и по возрастанию), не помогает, только хуже... Сейчас сделал перемешивание строк с помощью генератора случайных чисел, и повтор всего этого в цикле, с запоминанием наилучшего результата и выводом потом его в таблицу. При 500 циклах, получен результат с одним повтором, при тех-же исходных данных, что в описании. Но, это около 40 минут на моем компе(на поле, на ноуте, будет раза в полтора больше), что совершенно не приемлемо, да и результат негарантирован. Должны же быть какие-то другие, более "научные" способы решения этой задачи? Подскажите, может есть еще где-то тусовки людей, знакомых с комбинаторикой и подобными задачами? Кроме КиберФорума, ничего больше найти не удалось...
14.09.2015 08:04
OlegON
 
Сейчас народ сильно ленив стал на форумах... Многих уволили, наверное.
Я по прежнему не нахожу время погрузиться в задачу, но почему именно 500 циклов? поставь 5, с учетом базы на генераторе случайных чисел (его надо инициализировать, может, сначала?) случайности будет достаточно?
14.09.2015 18:27
MWWRuza
 
Да какая разница, сколько циклов... Это влияет только на время выполнения задачи, и на шанс нарваться на удачную раскладку исходного списка - попасть пальцем в ж**у Если повезет, то может и с первого раза разложиться оптимально, а если нет, то может и после 500 циклов остаться много повторов... На то он и генератор случайных чисел...
По хорошему, он там не нужен в таком виде совсем - должно быть решение в виде готовой матрицы, в которую уже можно запихнуть список, случайно перемешанный(или не перемешанный, а расположенный по каким-то критериям, если это неизбежно!), и на выходе получить максимально разведенную таблицу...
То, что я сейчас использую ГСЧ, это временная мера, что-бы понять, на сколько вообще может решиться задача, потому-как, понять закономерность расположения пилотов в исходном списке и влияние этого расположения на конечный результат - выше моего понимания... По крайней мере - пока выше
14.09.2015 18:35
MWWRuza
 
Цитата:
OlegON с учетом базы на генераторе случайных чисел
Что значит базы? Он сейчас генерит случайное число в диапазоне от 1 до количества пилотов - в моем примере 25. Выбирает по этому получившемуся числу пилота из исходного списка, помещает в выходной список, а из исходного удаляет. И так, пока исходный список не будет пустым. В результате все пилоты из исходного списка переместятся в выходной список, "перетасованные" в случайном порядке, как колода карт.
А база... Это, как я понимаю, варианты расстановки исходного списка... При количестве участников 25 - 25 в 25 степени(могу ошибаться, но думаю так). Число огромное, и задача неделю будет решаться...
14.09.2015 20:38
OlegON
 
Поскольку это все же не случайное, а псевдослучайное число на самом деле, во всяких васиках раньше надо было инициализировать чем-то вроде RANDOMIZE TIMER, в противном случае последовательность была хаотичная, но одна и та же. По моему предложенный вариант избыточен по циклам. Исходя из того, что число все же действительно произвольное, можно сразу дать всем пилотам индексы и отсортировать по возрастанию.
Часовой пояс GMT +3, время: 07:38.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.