Допустим, ваш дистрибутив не был обработан NumPy или стандартной библиотекой Python.
В ситуациях, когда производительность не очень важна, выборка отклонения - полезный хак для получения дро из дистрибутива, у которого вы не используете тот, который у вас есть.
Для вашего треугольного распределения вы можете сделать что-то вроде
from random import random, uniform
def random_triangular(low, high, mode):
while True:
proposal = uniform(low, high)
if proposal < mode:
acceptance_prob = (proposal - low) / (mode - low)
else:
acceptance_prob = (high - proposal) / (high - mode)
if random() < acceptance_prob: break
return proposal
Вы можете построить несколько образцов
pylab.hist([random_triangular(1, 6, 5) for t in range(10000)])
чтобы убедиться, что все выглядит хорошо.