http://mirror.codeforces.com/contest/185/submission/1656438 — что это такое?! Погрешность идет в восьмом знаке. Почему в чекере проверка на <= выполняется без эпсилона?
№ | Пользователь | Рейтинг |
---|---|---|
1 | tourist | 3993 |
2 | jiangly | 3743 |
3 | orzdevinwang | 3707 |
4 | Radewoosh | 3627 |
5 | jqdai0815 | 3620 |
6 | Benq | 3564 |
7 | Kevin114514 | 3443 |
8 | ksun48 | 3434 |
9 | Rewinding | 3397 |
10 | Um_nik | 3396 |
Страны | Города | Организации | Всё → |
№ | Пользователь | Вклад |
---|---|---|
1 | cry | 167 |
2 | Um_nik | 163 |
3 | maomao90 | 162 |
3 | atcoder_official | 162 |
5 | adamant | 159 |
6 | -is-this-fft- | 158 |
7 | awoo | 156 |
8 | TheScrasse | 154 |
9 | Dominater069 | 153 |
10 | nor | 152 |
http://mirror.codeforces.com/contest/185/submission/1656438 — что это такое?! Погрешность идет в восьмом знаке. Почему в чекере проверка на <= выполняется без эпсилона?
Название |
---|
Сравнение идет по логарифмам, а не по самим числам.
Прочитайте еще раз вердикт на 11 тесте...
Кстати, действительно интересно. Но так как в условии ничего не написано на сравнение суммы с EPS, то поведение чекера оправдано — он не более строгий, чем полагается по условию.
В любом случае, проверка на <= без эпсилона выполняться не должна, или я где-то тут ошибаюсь?
Мне кажется, ошибаетесь. Вы выводите какие-то конкретные точные числа и можете гарантировать, чтобы сумма была <= без всяких EPS, поскольку сложение тоже можно (в теории) выполнить абсолютно точно. Значит, чекер вправе требовать точного соответствия.
Становится интереснее: вот это решение получило АС. Я всего лишь вывел ответ с 10 знаками после запятой вместо восьми.
Ну может и сумма от этого точнее стала?
Ну может речь в топике идет не об этом? :)
Как это не об этом? У многих претесты не проходило из-за того что выводили с недостаточной точностью. У меня, например, с 9 знаками не проходило 7 претест, а с 15 прошло. Наверное в чекере стоит эпсилон 1e-10 для проверки суммы.
Мне Gerald только что ответил в ПМ, что проверка действительно идет с эпсилоном.
Не понятно:-O. Вам чекер говорит,что сумма больше той, что нужно. и это действительно так: cложите print 367.94063862+365.46123855+168.59812284 получится 902.00000001. А если сложить то, что выводится с точностью .10 то сумма будет 902.0000000000000...(то есть,она верна с необходимой точностью) .
Вопрос тут в том, почему чекер вообще гвоорит об этой погрешности в сумме, если в условии таких ограничений на нее не было. Возможно, погрешность в логарифме, о которой было сказано, превышает погрешность в сумме,поэтому странным тут можно считать только вывод чекера:)
А где она была указана, эта "необходимая точность"?
Если её не указано, то лучше считать, что она равна нулю — так не ошибёшься.
А зачем ее указывать ? o_O. Погрешности за одно значение и знания теории погрешностей достаточно. Если погрешность на число равна A,то на его квадрат
.Отсюда следует,что если числа >1,то погрешность при возведении в любую степень сильно увеличится, и тем более если погрешность задана на логарифм.
Имхо,для большинства случаев чекер даже более лояльный чем условие, погрешность той суммы должна действительно стремиться к 0.
Заклинили Вы на своих логарифмах. В тернарном поиске у меня равенство суммы соблюдается достаточно точно.
P.S. После такого неприятного опыта я буду всегда в подобных задачах выводить ответ с 20 знаками после запятой...
Вообще причин не выводить с 20 (я всегда делаю 18) знаками нету. Это одна из привычек которую хорошо в себе развить :о)
Иногда просят вывести с ровно 4-я знаками после запятой. Тогда можно сравнивать без EPS вообще и вся точность — внутренние проблемы решения.