我想用列表給出一個概率分佈函數的整數隨機數。 例如,如果pdf = [3,2,1],那麼我喜歡 rndWDist(pdf) 返回0,1和2,概率爲3/6,2/6和1/6。 我寫了自己的函數,因爲我無法在隨機模塊中找到它。用Python給出的PDF的隨機數
def randintWDist(pdf):
cdf=[]
for x in pdf:
if cdf:
cdf.append(cdf[-1]+x)
else:
cdf.append(x)
a=random.randint(1,cdf[-1])
i=0
while cdf[i]<a:
i=i+1
return i
是否有更短的方法來達到相同的結果?
的[生成與給定的(數值)分佈的隨機數]可能重複(http://stackoverflow.com/questions/4265988 /產生隨機號碼上帶有一個給出的數值分配) – juankysmith 2014-09-04 14:26:01