Nov 04, 2009 17:11
Строю в своей проге графики зависимости размера ошибки от некоторого параметра. Но что такое, вроде на каждое значение параметра делаю по несколько случайных выборок, а на графике максимум, минимум и средняя ошибка совпадают и вообще он странный выходит. Причем когда пытаюсь проходить это место по шагам - значения выходят разные и график более правильный. Что такое? Что за фигня?
Думал долго. Потом догадался.
Дело в том, что каждый раз при генерации выборки я инициализирую рандомайзер текущим временем. А так как считается достаточно быстро, то от генерации до генерации время не успевает измениться. Получается, я инициализирую его все разы одной и той же цифрой. Поэтому он, конечно же, дает мне всегда одну и ту же выборку, если еще и параметры не менять.
Решение: запихнуть инициализацию рандомайзера куда-нибудь еще, где она не будет вызываться при каждой генерации (ну, скажем, проинициализировать его раз и навсегда при запуске. Ну, или чуть позже. Как выяснилось, в таком случае действительно работает приличнее и графики получаются менее странные.
прогерство