在Java中我們可以使用java.util.Random類來產生一個隨機數發生器。它有兩種形式的構造函數,分別是Random()和Random(long seed)。Random()使用當前時間即System.currentTimeMillis()作為發生器的種子,Random(long seed)使用指定的seed作為發生器的種子。

隨機數發生器即Random對象產生以后,可以通過對象調用不同的函數:nextInt()、nextLong()、nextFloat()、nextDouble()等來獲得不同類型的隨機數。

如果2個Random對象使用相同的種子(比如都是100),并且以相同的順序調用相同的函數,那么它們的返回值完全相同。如下面代碼中兩個Random對象的輸出完全相同:

 

import java.util.*;

class TestRandom {

public static void main(String[] args) {

Random random1 
= new Random(100);

System.
out.println(random1.nextInt());

System.
out.println(random1.nextInt());

System.
out.println(random1.nextFloat());

System.
out.println(random1.nextFloat());

System.
out.println(random1.nextBoolean());

System.
out.println(random1.nextBoolean());

Random random2 
= new Random(100);

System.
out.println(random2.nextInt());

System.
out.println(random2.nextInt());

System.
out.println(random2.nextFloat());

System.
out.println(random2.nextFloat());

System.
out.println(random2.nextBoolean());

System.
out.println(random2.nextBoolean());

}


}




如果希望將返回的隨機數控制在某個范圍內(比如0~99),則可以使用模數運算符%。說明:將模數運算符%作用于隨機數產生器所產生的隨機數身上,目的是為了讓隨機數的最大值局限于我們所制定的操作數數值減1范圍內。如下面代碼就將輸入控制在0~99的范圍內,注意:如果不加Math.abs(),輸出范圍將是-99~99。

 

import java.util.*;

class TestRandom {

public static void main(String[] args) {

Random random 
= new Random();

for(int i = 0; i < 100; i++{

System.
out.println(Math.abs(random.nextInt()) % 100);

}


}


}