eolymp
bolt
Попробуйте наш новый интерфейс для отправки задач
Задачи

Дремучий лес

опубликовано 23.06.2013, 15:43:13

Условие и тесты совпадают с последней задачей. Да и с тестами что-то не ладное: одна и та же программа скомпилированная разными компиляторами то проходит то нет. А если повысить точность вывода решения то не засчитает (хотя пишет что надо вывести с точностью не меньше 8 символов, а не ровно 8)

опубликовано 23.06.2013, 15:52:28

> Djuri-bachi > > Условие и тесты совпадают с последней задачей. > Да и с тестами что-то не ладное: одна и та же программа скомпилированная разными компиляторами то проходит то нет. А если повысить точность вывода решения то не засчитает (хотя пишет что надо вывести с точностью не меньше 8 символов, а не ровно 8)

Точность - дело тонкое. Автоматическая проверка проверяет не равенство первых k символов в выводе, а то, чтобы разность между авторским решением и решением участника отличались не более, чем на некоторое маленькое значение. Пусть реальный ответ 7,97 Ваша программа выводит ответ 8,07 Разность составляет одну десятую(что может подходить под ограничения точности) Если вы увеличите точность, Ваша программа выведет 8,0784 Разность уже составит большее значение, и не выполнится соответствующее ограничение точности. По поводу разных компиляторов - у них просто разные особенности, в том числе и хранение дробных чисел.

опубликовано 23.06.2013, 16:02:15

Ну тогда совсем ничего не понимаю. Если не идет проверка на тотожное равенство ответа, тогда єталонные ответы неправильны. Программа не может неправильно решать задачу (єто ведь стандартная минимизация унимодальной функции), а чтоб засчитало все тесты пришлось пошаманить: брать не середину отрезка на котором находится минимум, а его левый край. Но с увлечением точности проходит меньше тестов, чем когда выставить е = 1е-8.

опубликовано 23.06.2013, 16:05:36

Мне тоже пришлось пошаманить немного) и мне тоже не нравятся такие задачи) Но система - есть система)

опубликовано 23.06.2013, 16:11:06

да сама задача нормальная, только вот тестирование какое-то странное. Вот на Паскале никак не получается ее решить, хотя та же программа на компиляторе Делфи проходит все тесты. А у нас преважное большинство пользуется Паскалем. На олимпиадах, обычно есть только Free pascal и Microsoft c++

awpris ответил:
А про опции компилятора Вы не в курсе? Кто Вам мешает компилить на free в режиме Delphi? _P.S._: Хотя это не всегда снимает проблему.
опубликовано 23.06.2013, 16:27:00

Честно говоря о возможности из-под Фри компилировать в режиме Делфи от Вас услышал впервые.

опубликовано 23.06.2013, 16:31:51

P.S. Так проходит, хотя не понимаю в чем проблема... Єх, хоть один бьі с проблемньіх тестов увидеть, уже интересно почему без пляски с бубном не работает...

опубликовано 23.06.2013, 16:36:36

Боюсь, Вам тест не поможет) Просто отличаться будут значения на некое маленькое значение)

опубликовано 23.06.2013, 16:41:40

Это понятно. Но хотелось бы отловить где программу несет не в ту степь. Вроде на всех моих тестах программы выдают один и тот же ответ, как и Maple.

опубликовано 23.06.2013, 16:41:49

Неплохим решением этой проблемы было бы такое: Берем авторское решение с точностью, скажем 10 ^ -7 А затем сравниваем не сам ответ участника, а то, чтобы время передвижения при таком ответе было меньшим либо равным времени, которое получится при авторском ответе) в этом случае если ответ участника и будет отличаться от авторского, то он должен отличаться в "нужную" сторону. Но для этого нужно писать специальный чекер)

опубликовано 23.06.2013, 16:51:05

Есть авторские решения с точностью, не менее, чем 10^(-9).

Мы оказались "добрее" - сравниваем с авторским модуль разницы ответа автора и пользователя. Если он (модуль разницы) не превышает 0.000000011, (что, согласитесь действительно добрее чем 0.00000001) то ответ засчитывается.

Вот так собственно и работает чекер в задачах подобного типа.

опубликовано 23.06.2013, 16:52:05

AlexBurkov, та ну... Обычной проверки отличия по модулю пользовательского решения от єталоннго достаточно, если єталон с точностью хотя б на порядок вьіше чем требуется в задаче, а лучше на 2.

опубликовано 23.06.2013, 16:53:49

> awpris > Есть авторские решения с точностью, не менее, чем 10^(-9). >...
Ну тогда совсем ничего не понимаю...

awpris ответил:
Всё дело в накапливаемых в процессе вычислений в Вашем решении ошибок в погрешности.
опубликовано 23.06.2013, 17:04:42

>awpris Я об этом и подумал в первую очередь: изменил тип на более точный (с double на long double), уменьшил критерий остановки а тесты стало проходить хуже...