所以我想製作一個腳本,它將隨機將4的值分成12個不同的變量。我想不出一個好的方法來正確地做到這一點。我考慮過對數字進行隨機化,以使它們接近0.33(4/12中的1/12),但這往往會導致最後幾個數字被忽略。任何人都曾嘗試過這樣的事情,或者對於如何使這個儘可能隨機且均勻不均勻有什麼好的想法?將一個數字劃分爲隨機不等份
7
A
回答
17
從您最喜歡的隨機數生成器中生成12個隨機數,請撥打r1..r12
。
將它們全部加起來,請撥打總和sum
。
4
的第一個隨機部分是(r1/sum)*4
。其餘的應該是顯而易見的。
8
生成任何大於1的隨機數,然後重新縮放到所需的總和。
實施例:
- 必需總和:4
- 隨機編號:1 2 3 4 5 6 7 8 9 10 11 12
- 薩姆= 78
- 重標號:
1 rescaled to(1 * 4)/ 78
2重新縮放至(2×4)/ 78
...
12重新縮放到(12 * 4)/ 78
2
下面的算法提供了均勻分佈的分區,假定有可能以在連續範圍內(或者至少在具有足夠多的可能值的離散範圍上產生均勻分佈的隨機數,以致重複的可能性可忽略不計)。
爲了產生的t
一個分區到k
值:
範圍
[0, t]
生成k-1
均勻分佈的值。對它們進行排序,並在開始處添加
0
,最後添加。使用相鄰的差異作爲分區。
相關問題
- 1. 隨機並將NumPy數組劃分爲不等數部分
- 2. 劃分爲兩個不相等的隨機部分
- 3. 將一個數字劃分爲其他有效數字
- 4. 將一個數組列表劃分爲兩個相等的部分
- 5. 劃分一個圖像劃分成相等的像素數據
- 6. 將一個數組劃分爲最佳的不等於總和子列表
- 7. 將一個數字等分爲12個整數
- 8. 使用python將隨機樣本劃分爲子組
- 9. 將矩形劃分爲隨機形狀的多邊形
- 10. 如何將數字分解爲隨機生成的部分
- 11. 將一個集合劃分爲K個不相等的子集合
- 12. 將一個DataTable劃分爲多個
- 13. 如何將給定字段中的年份劃分爲單個年份?
- 14. 將隨機生成的數字乘以另一個數字是否會改變隨機性的分佈?
- 15. 如何生成隨機數,這將提供關於劃分
- 16. 如何爲一個變量分配一個隨機數?
- 17. 隨機數字分佈
- 18. 分配隨機數字c#
- 19. 爲每一行隨機(隨機)數據
- 20. 在C++中將間隔劃分爲n個相等部分
- 21. 將一個隨機數字拉成一個symfony形式
- 22. 將隨機數發生器種子設置爲一個「隨機」數
- 23. 隨機「搖動」一個數組來分配新的隨機點
- 24. Python:將一個字符串劃分爲子字符串
- 25. 如何在nodejs中將數組劃分爲相等部分
- 26. 將數組分爲兩個隨機長度數組
- 27. 將數據集劃分爲兩個聚類,總等差異相等
- 28. 將一列數據劃分爲四列
- 29. 式從一個小區數據劃分等分爲多個小區
- 30. 爲什麼我的隨機數字不那麼隨機?
太棒了!非常感謝! – Tom 2013-02-19 13:58:40
請注意,此解決方案不會生成以邏輯方式均勻分佈的數字集,但它是大多數人似乎選擇的解決方案,因爲他們不明白爲什麼它不能產生真正一致的東西。 – 2013-02-19 16:09:37
@woodchips:爲這種批評提供一些證明(雖然它是正確的),對於提供生成均勻分佈的分區的答案更有幫助。我試圖做後者,但我不確定它是否正確。 – rici 2013-02-19 19:21:17