Я хочу запустить симуляцию, которая использует в качестве параметра значение, полученное из треугольного распределения вероятности с нижним пределом A, режим B и верхний предел C. Как я могу сгенерировать это значение в Python? Есть ли что-то такое же простое, как expovariate (лямбда) (от случайного) для этого распределения или мне нужно кодировать эту вещь?Python, SimPy: Как сгенерировать значение из треугольного распределения вероятностей?
ответ
Если вы загружаете пакет NumPy, у него есть функция numpy.random.triangular (left, mode, right [, size]), которая делает именно то, что вы ищете.
Так, я проверял документацию от случайной Python 2.4 Я пропустил это:
random.triangular (низкий, высокий, режим) ¶ Возврата случайного числа с плавающей точкой N такой, что низкая < = N < = высокий и с указанным режимом между этими границами. Нижняя и верхняя границы по умолчанию равны нулю и единице. Параметр mode по умолчанию задает среднюю точку между границами, предоставляя симметричное распределение. Новое в версии 2.6.
Предположим, что ваше распределение не обрабатывалось 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)])
, чтобы убедиться, что все выглядит хорошо.
Хороший намек общего назначения! для ОП идея здесь относится к равномерности плотности желаемого распределения. –
- 1. Как имитировать из (произвольного) непрерывного распределения вероятностей?
- 2. Случайный образец треугольного распределения: R
- 3. сравнения вектора распределения вероятностей
- 4. Создание треугольного распределения в Matlab
- 5. Выборка из дискретного распределения вероятностей в C++
- 6. R получения распределения вероятностей
- 7. Случайные числа из условного распределения вероятностей в Python
- 8. Генерировать случайные числа из трехмерного распределения вероятностей
- 9. Python - построение двумерного распределения вероятностей из векторов разной длины
- 10. распределения вероятностей двух списков слов
- 11. Создание нового распределения вероятностей R
- 12. Как работать с числовыми функциями распределения вероятностей
- 13. Как эффективно управлять функциями распределения вероятностей?
- 14. Plotting распределения вероятностей с использованием Matplotlib
- 15. Исходя из непрерывного треугольного распределения в питоне SciPy
- 16. Какова хорошая практика для распределения вероятностей модульного тестирования?
- 17. Случайный выборка из набора данных при сохранении исходного распределения вероятностей
- 18. Расчет распределения предельных и условных вероятностей
- 19. Моделирование распределения пользовательских вероятностей в Matlab
- 20. Plotting интеграла от распределения вероятностей в Matplotlib
- 21. Визуализируйте область отклонения в кривой распределения вероятностей
- 22. Python-simpy побитовое или
- 23. Тип Ошибка - Python Simpy
- 24. Как генерировать данные из нормального распределения
- 25. Как построить многократные распределения вероятностей бок о бок в R?
- 26. Расчет условных вероятностей из частот в Python
- 27. Получение распределения из гистограммы
- 28. Произвольно выбирайте числа в диапазоне от заданного распределения вероятностей
- 29. Как сгенерировать случайное число из равномерного распределения в php?
- 30. Как я могу сделать 2-D карту для набора точек, исходя из их распределения вероятностей?
Это, вероятно, лучший ответ, чем принятый для большинства случаев использования. Это раздражает, что API имеет другой порядок для NumPy! –