eolymp
bolt
Try our new interface for solving problems
Məsələlər

Дремучий лес

dərc olunub 23.06.13 15:43:13

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

dərc olunub 23.06.13 15:52:28

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

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

dərc olunub 23.06.13 16:02:15

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

dərc olunub 23.06.13 16:05:36

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

dərc olunub 23.06.13 16:11:06

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

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

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

dərc olunub 23.06.13 16:31:51

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

dərc olunub 23.06.13 16:36:36

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

dərc olunub 23.06.13 16:41:40

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

dərc olunub 23.06.13 16:41:49

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

dərc olunub 23.06.13 16:51:05

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

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

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

dərc olunub 23.06.13 16:52:05

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

dərc olunub 23.06.13 16:53:49

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

awpris cavab verdi:
Всё дело в накапливаемых в процессе вычислений в Вашем решении ошибок в погрешности.
dərc olunub 23.06.13 17:04:42

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