我想運行一個模擬,它使用從下限A,模式B和上限C的三角概率分佈生成的值作爲參數。我如何在Python中生成這個值?是否有這樣簡單的expovariate(lambda)(從隨機)這個分佈或我必須編碼這個東西?Python,SimPy:如何從三角概率分佈生成一個值?
6
A
回答
6
如果你下載NumPy包,它有一個函數numpy.random.triangular(left,mode,right [,size]),它完全符合你的要求。
4
由於,我是從Python 2.4中檢查隨機的文檔,我錯過此:
random.triangular(低,高,模式)¶ 返回一個隨機浮點數N,使得低< = N < =高,並在這些邊界之間指定模式。低限和高限默認爲零和1。 mode參數默認爲邊界之間的中點,給出對稱分佈。 版本2.6中的新功能。
2
假設您的發行版不是由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)])
,以確保一切正常。
+0
尼斯通用暗示!對於OP,這裏的想法是將均勻度與期望分佈的密度相關聯。 – 2012-01-01 20:49:02
相關問題
- 1. 生成概率分佈
- 2. 概率分佈值情節
- 3. 從具有兩個峯值的直方圖生成概率分佈
- 4. 用matplotlib繪製三維概率分佈
- 5. 在Matlab中生成三角形分佈
- 6. 使用一個概率集合來生成另一個概率集合
- 7. 從C++中概率分佈向量生成隨機數發生器
- 8. 有沒有一個用於在JavaScript中生成概率分佈的科學庫?
- 9. 建立從兩個分佈的概率分佈在朱莉婭
- 10. 根據概率分佈函數生成隨機數
- 11. 用概率分佈生成範圍內的隨機整數
- 12. 如何從離散概率質量函數創建一個dsicrete概率分佈函數
- 13. matlab概率分佈擬合
- 14. 從python中的列表生成一個隨機的,等概率的組合
- 15. Python numpy根據概率生成隨機二進制值數組
- 16. python從不同概率的不同分佈採樣
- 17. 從python的csv文件中的概率生成數字
- 18. 基於python中的一個值生成「正態分佈」數據
- 19. 如何使用C rand()函數生成一個帶有p概率的布爾值?
- 20. 如何使用simpy python在GUI中生成時鐘?
- 21. 如何在R中並排繪製多個概率分佈?
- 22. 如何從關節,離散,概率分佈函數數值採樣
- 23. MATLAB:如何繪製三維的概率分佈? (涉及貝葉斯規則)
- 24. Python中,概率
- 25. 創建一個新的概率分佈R
- 26. 創建一個遵循概率分佈的日期向量
- 27. Python:NLTK ValueError:Lidstone概率分佈必須至少有一個bin?
- 28. boost :: math :: pdf,它是如何計算一個正態分佈的概率,只有一個值?
- 29. 涉及均勻分佈的概率
- 30. 離散的通用分佈概率
對於大多數使用情況來說,這可能是比公認的更好的答案。雖然這個API與NumPy有不同的順序,但這有點令人煩惱! – 2016-04-04 15:51:40