ababc1005   2년 전

문제를 풀다 보면 실수형 자료를 요구하는 케이스가 꽤 많은데, (특히 기하학, 수학 관련)

다들 실수형 자료의 오차를 어떻게 핸들링 하고 계신가 문득 궁금해지네요. 

물론 https://www.acmicpc.net/blog/v... 이 글과 같이 오차 범위를 어느 정도 계산해 가면서 할 수도 있지만

저 같은 경우는 보통 제출 횟수에 제한이 있는 경우가 아니다 보니 

assert로 답안 오차를 try & error로 대략 찾고 try & error로 오차 범위를 뚫고.... 

더 귀찮을 때는 그냥 오차 범위를 1e-6부터 쭉 내려가며 찾고는 합니다.

하지만 문제가 복잡해 지면 복잡해 질수록 어찌 보면 어디서 오차가 누적되는지

혹은 최종 답안에 중요한 오차는 어디까지 인지 살피는 것이 중요한 것 같은데

다른 분들은 주로 어떻게 오차를 다루고 계신지 궁금하네요. 

단순히 비교 연산 등 뿐만 아니라 전반적인 실수 연산 과정에서 오차를 줄이는 테크닉이 어떤 것들이 있을지도 궁금하구요.


예를 들어 저 같은 경우는  18647번: Spaceship (acmicpc.net) 문제는 답안 도출 방법은 알겠는데 오차를 줄일 방법을 몰라 묵혀 둔지 오래구요..

10785번: Asteroids (acmicpc.net) 이 문제도 연산 과정이 꽤 직관적이고 연산이 많지 않은데도 long double로도 오차가 1e-5 넘게 나서 놀란 경험이 있네요.

댓글을 작성하려면 로그인해야 합니다.