<< Вернуться на главную спасаем мир(2005г)Спасаем мир!
Ну вот и пережили мы очередной конкурс программистов :-) Огромное спасибо всем,
кто дошел до конца, ну а победившим отдельный почет и уважение!
Конкурс состоялся 09.01.06 на базе СЮТ.
Условия задачи новогоднего конкурса программистов
смотрите в старых версиях данной странички.
Как обычно, во время очного этапа участникам было
предложено три новых ситуации. 10 лазеров и 10 астероидов (по общему признанию - самый сложный вариант). Дело в том, что здесь наверное должны лучше всего проявиться лучшие качества придуманных алгоритмов. Второй случай очень напоминал заочный этап. 100 астероидов и 5 лазеров. Это пожалуй самый результативный этап, в нем много астероидов (есть на что поохотиться :-) ) Соответственно 3-й вариант - 100 лазеров и 5 астероидов, скорее требует четкой расстановки лазеров, но нельзя упускать добычу! А то вместе с добычей может и победа убежать! Так что расслабляться не стоило! К сожалению с переходом на Делфи, размеры исходных проектов так подрасли, что выложить все результаты затруднительно. Поэтому решено выложить только некоторые (и не больше одного на человека). Видимо на будущее нужно подумать над тем, чтобы алгоритмы выносить в отдельные подпрограммы, тогда они места будут занимать поменьше.
ОКОНЧАТЕЛЬНЫЕ ИТОГИ:
"А это готовая программа Победителя"
"РАЗБОР ПОЛЕТОВ"Ну наверное слегка недотянули :-) Наш конкурс не совсем обычен. Вроде все заранее известно, а в чем интрига? Не смотря на кажущуюся простоту, он требует умения размышлять, придумывать алгоритм, ну и естественно реализовать его. Но мало придумать идею, нужно ее успеть реализовать, и поверьте, это тоже не так просто сделать. Очень часто при попытке "улучшить" программу она "разваливается" прямо на глазах. Допустим вам повезло. все работает. Мы запускаем программу и обнаруживаем..... Правильно! работает не совсем так, как задумывали :-) Начинаем править и... Опять правильно! Тут-то все и разваливается :-) Для анализа результатов давайте попытаемся зайти с другого конца. Идея возникла у меня в ходе конкурса. Как-бы я сам подошел к решению этой задачи? итак: 1)Была дана готовая программа, которая уже работает (но по случайному закону). Все равно, что стрелять с завязанными глазами. Если впереди стадо уток :-), то можно и попасть. Однако понятно, что особо не разгонишься. Все это просто для демонстрации приемов программирования. Там для примера был и простейший анализ (обращение к переменным) и вызов подпрограмм. Просто начальная идея дохлая. 2) Берем самую простую идею. Перебрать все лазеры и все астероиды и найти пару "лазер-астероид" между которыми минимальное расстояние. Если можно стрелять (расстояние меньше 2-х) то стреляем. иначе гонимся выбранным лазером за выбранным астероидом. Вроде не сложно (но правда сразу не получилось :-) ) (Кстати по этому пути пошел господин Воропаев. Но небольшая ошибочка не позволила ему до конца отладить программу. Увы ...бывает...) Ну а у меня .... "Вот что получилось"
Как видим все достаточно просто. Ну а результат? Ну а дальше? Заметив, что по диагонали, догнать астероид невозможно, я сделал вывод, что нет смысла гоняться за астероидами летящими по касательной. Я ввел дополнительную проверку на исключение таких астероидов и ... ПРОИГРАЛ! Результаты ухудшились! Оказалось, что идея об исключении не совсем верна :-) . просто не там проверку поставил! Догонять нельзя, но навстречу, запросто! Значит можно добавить прогноз. Ну и так далее.... "ВЫВОДЫ"Внимательно прочитали "разбор полета"? Вот то-то и оно! Готовиться можно было и получше. Как видим, простой алгоритм получился эффективней сложного! Ну а простой но навороченный и подавно :-) Короче перемудрили господа! Вот у Русанова аж 64 ветки было! Получается только Козыреву удалось нормально придумать, развить и реализовать алгоритм. Остальные на чем-то "погорели" :-) Но все равно здорово! Я считаю, что это нормально! Главное, что все участники ДУМАЛИ и делали! Ну а идеи это такая тонкая субстанция..... не получилось сегодня, но мы сядем завтра, учтем ошибки, и заново реализуем! Так что господа, у вас все еще впереди. Особая благодарность за помощь и поддержку всем работникам СЮТ, оказавшим мне организационную и методическую помощь. Ну и если у вас имеются интересные идеи для проведения конкурса в следующем году, пишите, мы обязательно примем к сведению.
По всем вопросам обращайтесь к администрации "звездного мира"
по адресу |