2011-03-15 123 views
2

我想在Java EE應用程序中長時間(每天幾十個數字)生成(質量)隨機數。即使服務器重新啓動,它也應該保持一致的分佈。你有什麼建議來告訴你如何實現這個目標?長時間均勻分佈的隨機數

回答

2

java.util.Random中的所有方法都會返回除nextGaussian()之外的隨機數的均勻分佈。

只要不產生可預測的隨機數序列,爲什麼不把種子設置爲以毫秒爲單位的時間與當前進程ID異或?

+0

+1更強大的庫:目前的進程id是棘手的,但是System.nanoTime()是不是和隨機()將其用作默認種子的一部分。如果你想要一個不太可預測的序列,你可以使用SecureRandom。 – 2011-03-15 17:56:52

+0

是的,它不是便攜式的。您可以使用JMX,但依賴於其平臺。哎呀!寫一個JNI例程,我想。我內部的C程序員對此感到厭惡。 – 2011-03-15 18:39:16

+1

@Peter:使用SecureRandom的+1。 @Amir:制定你自己的不可猜測的隨機數的方法(或者更一般地說,你自己的密碼學相關的東西)幾乎總是一個壞主意。 – 2011-03-15 18:48:36