Java學習關於隨機數工具類--Random類

忘塵天外天發表於2017-07-26

  Random類是偽隨機數生成器。之所以稱為偽隨機數(pseudorandom),是因為它們只是簡單的均勻分佈序列。Random類定義了以下建構函式:

    Random()

    Random(long seed)

  使用第一個版本建立的隨機數生成器使用相對唯一的種子(當前時間)。第二個版本允許手動指定種子。如果使用種子初始化Random物件,就會為隨機序列定義了開始點。如果使用相同的種子初始化另一個Random物件,就會得到相同的隨機序列。如果希望生成不同的序列,需要指定不同的種子。實現這種效果的一種方式就是使用當前時間作為Random物件的種子。這種方式減少了重複序列的可能。

  Random類定義的核心公有方法:

返回值 方法 描述
boolean nextBoolean() 返回下一個布林型隨機數
void nextBytes(byte  vals[] ) 使用隨機產生的值填充vals
double nextDouble() 返回下一個double型隨機數
float nextFloat() 返回下一個float型隨機數
double nextGaussian() 返回下一個高斯分佈隨機數
int nextInt() 返回下一個int型隨機數
int nextInt(int  n) 返回介於0 和 n之間的下一個int型隨機數
long nextLong() 返回下一個long型隨機數
void setSeed(long newseed) 將newseed指定的值設為種子

  可以通過Random物件抽取多種型別的隨機數,布林值、位元組、整數、浮點型都可以獲取。另外,nextGaussian()方法返回均值為0.0 ,方差為1.0 的標準高斯分佈隨機數,其型別為double,這就是著名的鐘形曲線(bell  curve)。下面一個例子,演示由nextGaussian()方法產生的隨機序列。首先獲取100個隨機高斯值並計算它們的平均值。然後以0.5為單位,分類統計落於正負兩個標準偏差範圍內的值的個數。

相關文章