С\С++ генератор СЧ из гауссовского распределения
Не очень понял проблемы. А чем не угодил метод обратной функции?
а что это за метод?
Не очень понял проблемы. А чем не угодил метод обратной функции?фтопку обратную функцию.
Проще сгенерировать N биномиальных независимых случайных величин. Их сумма даст нормальное распределение (N ~ 20 уже вполне хватает).
Теорема Муавра-Лапласа?
В GSL искал?
Только сумму надо отцентрировать и отнормировать.
В общем, надо сгенерировать 100 биномиальных чисед, сложить их и вычесть n*p и поделить на корень из np(1-p где p - параметр.
Можно легко оценить насколько получится ненормальная величина (довольно мало)
а как можно это оценить? строить эмпирическую функцию распределения и сравнивать с теоретической, на графике?
а как можно это оценитьа зачем, интересно знать ?
Большую погрешность, а главное — никак неучтенную, все равно внесет псведослучайность.
Насчет кода, прав, лучше воспользоваться какой-нибудь стандартной реализацией.
биномиальное распределение можно легко получить из равномерного, а это везде есть, на многих языках
Спасибо, удивил.
в gsl точно есть.gsl_ran_gaussian
остальным тоже спасибо за советы
Генерится 2 равномерных величины.
Из одной (X) методом обратной функции делается экспоненциальная.
Другая (Y) нормируется на [0; 2*pi)
После этого X*cos(Y) и X*sin(Y) - 2 независимых гауссовских сл.вел.
Похожие темы:
Оставить комментарий
Katrine
кому-нибудь приходилось генерировать случайные числа из гауссовского распределения на С? Поделитесь пожалуйста готовой функцией. Буду очень благодарен