Можно ли нарисовать случайное значение из равномерного распределения на открытом интервале? - PullRequest
1 голос
/ 12 февраля 2020

Я хотел бы использовать numpy, чтобы извлечь случайное значение из непрерывного равномерного распределения из открытого диапазона (0,5). Мои глаза упали на numpy .random.uniform (0,5). Однако, согласно документации и некоторым сообщениям, это включает в себя закрытый интервал [0,5] или полуоткрытый интервал [0,5).

Я просмотрел много постов и пока не нашел хороших ответов. Пока ответы таковы: вам не нужно использовать полностью открытый диапазон, потому что практически невозможно получить начальное и конечное значения (только теоретически), или есть споры о том, является ли он полуоткрытым или полностью закрытым. Лучшее решение, о котором я думал, это:

import numpy as np
rn = np.random.uniform(sys.float_info.epsilon, 5-sys.float_info.epsilon)
print(rn)

или использование numpy next_after:

import numpy as np
rn = np.random.uniform(np.nextafter(0,1), np.nextafter(5,0))
print(rn)

Очевидно, я бы не стал беспокоить всех, если бы у меня не было очень хорошая причина для рисования (в теории) из полностью открытого диапазона. Я был бы очень признателен за мысли о том, как я могу правдоподобно утверждать, что я рисую случайное значение из непрерывного равномерного распределения на полностью открытом интервале (0,5).

Заранее спасибо!

1 Ответ

2 голосов
/ 12 февраля 2020

Как насчет проверки, если rn == 0 и отклонения?

rn = np.random.uniform(5)
while rn == 0.0:
   rn = np.random.uniform(5)
...