Сделал по-лобовому:
- Код: Выделить всё
Private Function n() As Single
n = Sqr(-2 * Log(Rnd)) * Sc
If Rnd < 0.5 Then n = -n
End Function
(Sc - масштабный коэффициент).
Так вот, почему-то не работает, а именно не выдаёт маленьких (близких к 0) чисел. Хотя именно их он должен выдавать с наибольшей вероятностью. Поведение вдали от 0 похоже на правильное.
Формулу многократно проверял, но там негде ошибиться. Может, я чего-то не учёл? Может, Rnd не равномерное распределение даёт?