2 나의 솔루션 #
약간의 통계학적인 부분이 필요하다. 일단 문제1, 문제2, 문제3 .. 여러개가 있을 것이다. 각각의 문제를 몇명이나 맞췄는지 집계한다. 즉, 아래와 같을 것이다.
문제번호 | 맞춘횟수 | 평균 | 표준편차 |
문제1 | 124 | ... | ... |
문제2 | 423 | ... | ... |
... | ... | .. | ... |
그리고 평균과 표준편차를 구한다. (정규분포를 따른다고 가정했을 때에..)
- 1sigma = 평균 - 1 * 표준편차
- 2sigma = 평균 - 2 * 표준편차
- 3sigma = 평균 - 3 * 표준편차
구하고자 하는 것은 정답률이 낮은 것이다. 즉, 보통이 아닌 이상치를 구하는 것이다. 보통 이상치는 1.5 ~ 2.0 sigma 정도다. 그러므로
- WHERE 맞춘횟수 <= 평균 - 2 * 표준편차 --애덜이 잘 못 맞춘 문제들(어려운 문제들)
- WHERE 맞춘횟수 >= 평균 + 2 * 표준편차 --애덜이 많이 맞춘 문제들(쉬운 문제들)
정도로 해결 할 수 있다. 물론 매번 랜던추출시마다 평균과 표준편차를 구할 필요는 없다. 통계치는 매번 변하는 것이 아니므로 2주, 1개월에 한 번 평균과 표준편차를 집계한 테이블을 만들어 놓으면 된다. 또한 랜덤추출 대상이 되는 문제들을 미리 저장하는 방법도 성능을 위한 괜찮은 방법이다.