我希望每個處理的對象都有5個隨機數。我處理許多對象(分開),並且需要確保在所有數字中都實現了隨機性。如果我處理5個對象,我將有25支隨機數:正確生成隨機數
RN1 RN2 RN3 RN4 RN5
Object 1 1 2 3 4 5
Object 2 6 7 8 9 10
Object 3 11 12 13 14 15
Object 4 16 17 18 19 20
Object 5 21 22 23 24 25
的問題是:
- 爲單個對象,是否有所作爲,如果我使用目前每單號創建隨機數發生器時間以毫秒爲種子,或者當我創建一個隨機數生成器並根據隨機性質量使用
nextDouble
獲得一系列數字? - 一旦我處理了多個對象,並且我將所有對象的所有第一個隨機數取回,這些會形成均勻的隨機分佈(例如數字1,6,11,16,21)還是會以某種方式被破壞?
我的觀點是,這將是最好創建一個隨機數生成器只(所有對象共享),這樣當需要新的隨機電話號碼我可以nextDouble()
和隨機數序列得到一個數字。
如果您想要了解更多關於如何處理Java中並行/併發應用程序中的隨機數的細節,我寫了一篇關於這方面的文章:http://onlinelibrary.wiley.com/doi/10.1002/cpe.3214/abstract – jopasserat 2014-12-02 15:17:47
同一篇論文的免費版本:https://hal.inria.fr/hal-01098598v1 – jopasserat 2015-01-28 14:56:24