#1260: ...а в военное время достигает четырёх
Thu, 17 Sep 2009 09:00:01 +0400
Решали задачу, суть которой сводилась к тому, чтобы дискретными отрезками достичь поверхности Земли, не выходя
за пределы заранее заданного конуса. В качестве подзадач приходилось пересекать окружности, сравнивать углы
между векторами и заниматься прочими трехмерно-геометрическими прелестями.
Всё готово, начинаем проверку. На одном тесте работает, на втором работает, на третьем — бац! — ошибка. В
результате кропотливого дебаггинга обнаруживается проблемный кусок кода:
long double a1, a2;
a1 = PI / 2 + alp;
a2 = PI / 2 - alp;
После выполнения оказывается, что и a1, и a2 меньше, чем 1,57. Долго думали. Ещё думали. В итоге посмотрели в
начало кода:
const int PI = 3.1415926535897932384626433832795;
Вот уж действительно: «Для простоты вычислений примем Пи равным трём»...
http://ithappens.ru/story/1260