Страницы

Поиск по вопросам

четверг, 7 марта 2019 г.

Генерация нормально распределённой случайной величины в Python

Я хочу для генерации нормально распределённой случайной величины на языке Python воспользоваться методом random.normalvariate(mu, sigma) из модуля random. Однако я не сумел найти как этот метод реализован. Я надеюсь что там используется метод Бокса-Мюллера в одной из двух вариаций, расписанных на Википедии (потому что ещё есть методы, основанные на ЦПТ, которые мне не нравятся). Основной вопрос: это так или нет? Где можно посмотреть реализацию этого метода?


Ответ

В исходниках 2.7 и в 3.5 (ссылка есть в другом ответе) написано следующее:
def normalvariate(self, mu, sigma): """Normal distribution. mu is the mean, and sigma is the standard deviation. """ # mu = mean, sigma = standard deviation
# Uses Kinderman and Monahan method. Reference: Kinderman, # A.J. and Monahan, J.F., "Computer generation of random # variables using the ratio of uniform deviates", ACM Trans # Math Software, 3, (1977), pp257-260.

Комментариев нет:

Отправить комментарий