http://mirror.codeforces.com/contest/185/submission/1656438 — что это такое?! Погрешность идет в восьмом знаке. Почему в чекере проверка на <= выполняется без эпсилона?
| № | Пользователь | Рейтинг |
|---|---|---|
| 1 | Benq | 3792 |
| 2 | VivaciousAubergine | 3647 |
| 3 | Kevin114514 | 3603 |
| 4 | jiangly | 3583 |
| 5 | turmax | 3559 |
| 6 | tourist | 3541 |
| 7 | strapple | 3515 |
| 8 | ksun48 | 3461 |
| 9 | dXqwq | 3436 |
| 10 | Otomachi_Una | 3413 |
| Страны | Города | Организации | Всё → |
| № | Пользователь | Вклад |
|---|---|---|
| 1 | Qingyu | 157 |
| 2 | adamant | 153 |
| 3 | Um_nik | 147 |
| 4 | Proof_by_QED | 146 |
| 5 | Dominater069 | 145 |
| 6 | errorgorn | 141 |
| 7 | cry | 139 |
| 8 | YuukiS | 135 |
| 9 | TheScrasse | 134 |
| 10 | chromate00 | 133 |
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 вообще и вся точность — внутренние проблемы решения.