Эта ссылка показывает, как рассчитать ее с использованием стандартной функции random()
.
Следует отметить, что вам, вероятно, придется выполнить процедуру ranf()
, которая преобразует выходные данные.random()
от [0,MAX_INT]
до [0,1]
, но это не должно быть слишком сложно.
Из статьи по теме:
Полярная форма коробкиПреобразование Мюллера является более быстрым и более надежным в численном отношении.Алгоритмическое описание этого: float x1, x2, w, y1, y2;
do {
x1 = 2.0 * ranf() - 1.0;
x2 = 2.0 * ranf() - 1.0;
w = x1 * x1 + x2 * x2;
} while ( w >= 1.0 );
w = sqrt( (-2.0 * ln( w ) ) / w );
y1 = x1 * w;
y2 = x2 * w;