오버플로가 일어날 때까지는 합을 구하다가
오버플로가 일어나는 시점에서는 평균으로 반영하고 합은 새로 구함.
기존에 n 개에 대한 평균 a가 있다고 할 때,
새로운 값 m 개의 합계 s를 반영한 새로운 평균 a'는
a' = a * n / (n + m) + s / (n + m)
으로 구할 수 있음. 기존 평균에서 곱셈 나눗셈 연산으로 분모만 바꿔서 평균을 재활용하는 거지.
테스트 결과 아주 잘 됨.
오버플로가 일어날 때까지는 합을 구하다가
오버플로가 일어나는 시점에서는 평균으로 반영하고 합은 새로 구함.
기존에 n 개에 대한 평균 a가 있다고 할 때,
새로운 값 m 개의 합계 s를 반영한 새로운 평균 a'는
a' = a * n / (n + m) + s / (n + m)
으로 구할 수 있음. 기존 평균에서 곱셈 나눗셈 연산으로 분모만 바꿔서 평균을 재활용하는 거지.
테스트 결과 아주 잘 됨.
아 나 바보네. newsum += values[i]; 라인 수정. => newsum = sum + values[i];로.
님님 제꺼랑 데이터 10만개 찍어서 속도비교 해보실래여
제가짠게 더 빠르지싶은데..
님이 짠 건 DBL_MAX/2 값 3개 집어넣으면 출력 값 애자될 게 불을 보듯 뻔함
사칙연산 들어있는 갯수로 봐서 3~4배쯤 차이날거같아요!
그거 실수에여.. /e로 바꾸져..ㅠㅠ.
DBL_MAX-e를 DBL_MAX/e로 ..후엥..
그리고 님이 짠 거 제대로 결과가 나온다고 생각함?
테스트는 해 보고 올린 거?
내 코드는 정상 동작은 확인했음. 급하게 짠 Proof of Concepts 수준의 코드여서 코드 스타일이 마음에 들진 않네.
야 근데 장애인 란국사람 맞음? 리액션이나 문체가 한국 사람 아닌듯..컨셉?
아 근데 나 많이 피곤한가 보다. 왜 double 형 변수 초기값으로 0.0f (float형 상수)를 줬지 ㅋㄷㅋㄷ 미쳤네.
ㅋㅋ
근데 장애인 코드도 최적화할 여지는 많아.
http://autogram.tk/이
중고차 어플리케이션 어떤가요?