在某些代碼中,我想選擇n
[0,1)
中的隨機數,其總和爲1
。用固定金額選擇n個號碼
我通過獨立於[0,1)
選擇號碼,通過將每一個由總和歸他們這樣做的:
numbers = [random() for i in range(n)]
numbers = [n/sum(numbers) for n in numbers]
我的「問題」是,我走出分佈是相當扭曲。選擇一百萬個數字不是一個單一的數字會超過1/2
。通過一些努力,我已經計算出pdf,並且它不好。
這裏是怪異的PDF我得到了5個變量:
你有一個很好的算法來選擇號碼的想法,那結果更均勻或簡單的分佈?
我不確定我是否理解,如果你將數字1分成一百萬個隨機片段,那麼_不應該超過0.5。如果有的話,那意味着其他999,999將不得不適合另一半。 – DShook 2011-04-11 14:23:01
可能的重複[生成多個隨機數等於蟒蛇中的值](http://stackoverflow.com/questions/3589214/generate-multiple-random-numbers-to-equal-a-value-in-python) – 2011-04-11 16:39:58