문제를 풀다 보면 실수형 자료를 요구하는 케이스가 꽤 많은데, (특히 기하학, 수학 관련)
다들 실수형 자료의 오차를 어떻게 핸들링 하고 계신가 문득 궁금해지네요.
물론 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 넘게 나서 놀란 경험이 있네요.
댓글을 작성하려면 로그인해야 합니다.
ababc1005 2년 전 1
문제를 풀다 보면 실수형 자료를 요구하는 케이스가 꽤 많은데, (특히 기하학, 수학 관련)
다들 실수형 자료의 오차를 어떻게 핸들링 하고 계신가 문득 궁금해지네요.
물론 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 넘게 나서 놀란 경험이 있네요.