이 문제 절삭평균이라는 문제인데요. 알고리즘 자체는 간단한데 소수점 오차 때문에 계속 틀리고 있습니다.
질문 게시판을 보니 보통 1e-6을 평균값에 더해서 제출하라고 하더라구요. 그 이유가 예를 들어
10.105가 답인데 10.1049999999999로 저장되는 경우 답이 10.11이 아니라 10.10으로 출력되는 등의 케이스가 있기 때문이라고 하는데
그럼 반대로 10.104999999999가 평균값이라 10.10을 출력해야 답인데 저 오차를 더해서 반올림함으로써 틀리는 케이스도 있지 않나요? 어떻게 저렇게 오차 보정값을 더해서 반올림하는 방식이 ac를 받는건지 이해가 안됨요
아마 데이터가 없든 저 형태를 못 만들든 .499999인 경우가 존재하지 않기 때문일 거임. 근데 저 문제 그냥 a.b형태면 10a+b로 취급한 다음에 마지막에 10 나눠서 푸셈. 실수 앵간해서 쓰지 마.
그러게 걍 죄다 정수로 계산하는게 나을듯
나눗셈이 보통은 나머지를 '버리는' 식이라서 오차는 주로 음수오차가 발생합니다..는 느낌적인 느낌
감사합니다 반올림 출력 직접 만들어야겠네요
저렇게 오차를 보정하는 방식이 AC를 받는 이유는 그냥 테스트 셋이 약하기 때문일수도
근데 이게 초딩부 1번문제인데 초딩한테 floating point precision error 를 고려해야 하는 문제를 내나?
저시절이면 어차피 데이터당 점수라서 큰상관 없었음
그리고 초등부 문제에는 set 쓰는 dp도 나옵니다
게시판보니까 다른 플랫폼에서는 대충 double써도 맞는데 백준에서 double쓰면 틀리도록 테스트 케이스를 만들었다고 하네요...