屬于包:java.util.RandomRandom:隨機類型1、屬性。無。
2、構(gòu)造函數(shù)。Random() :創(chuàng)建一個新的隨機數(shù)發(fā)生器。
Random(long seed) :用一個種子(長整型)創(chuàng)建一個隨機數(shù)發(fā)生器。
3、方法。說明:
1. 所有方法均為public;
2. 書寫格式:[修飾符] <返回類型> <方法名([參數(shù)列表])>
如:
static int parseInt(String s) 表示:此方法(parseInt)為類方法(static),返回類型為(int),方法所需參數(shù)為String類型。1. protected int next(int bits) :產(chǎn)生下一個偽隨機數(shù)。
2. boolean nextBoolean() :返回下一個從隨機發(fā)生器的系列中得到的均勻分布的布爾值。
3. void nextBytes(byte[] bytes) :產(chǎn)生隨機字節(jié)數(shù)組放到指定的數(shù)組中。
4. double nextDouble() :返回下一個從隨機發(fā)生器的系列中得到的均勻分布的0.0到1.0的雙精度類型值。
5. float nextFloat() :返回下一個從隨機發(fā)生器的系列中得到的均勻分布的0.0到1.0的浮點類型值。
6. double nextGaussian() :返回下一個從隨機發(fā)生器的系列中得到的符合均勻分布的0.0的平均數(shù)到1.0方差的高斯分布雙精度類型值。
7. int nextInt() :返回下一個從隨機發(fā)生器的系列中得到的均勻分布的整型值。
8. int nextInt(int n) :返回下一個從隨機發(fā)生器的系列中得到的均勻分布的0到指定整型數(shù)(n)之間的整型值。
9. long nextLong() :返回下一個從隨機發(fā)生器的系列中得到的均勻分布的長整型值。
10. void setSeed(long seed) :設(shè)置隨機數(shù)發(fā)生器的種子為一個長整型數(shù)。
關(guān)于種子的描述:這個類的對象使用一個48位的種子,
如果這個類的兩個實例是用同一個種子創(chuàng)建的,
并且,各自對它們以同樣的順序調(diào)用方法,
則它們會產(chǎn)生相同的數(shù)字序列。
下面就對上面的介紹做一個實驗,
尤其注意相同種子時的結(jié)果,
如果用默認的構(gòu)造函數(shù)構(gòu)造對象,
他們是屬于同一個種子的。 import java.util.Random;
public class TestRandom{
public static void main(String[] args){
Random r1 = new Random(50);
System.out.println("第一個種子為50的Random對象");
System.out.println("r1.nextBoolean():\t" + r1.nextBoolean());
System.out.println("r1.nextInt():\t\t" + r1.nextInt());
System.out.println("r1.nextDouble():\t" + r1.nextDouble());
System.out.println("r1.nextGaussian():\t" + r1.nextGaussian());
System.out.println("---------------------------");
Random r2 = new Random(50);
System.out.println("第二個種子為50的Random對象");
System.out.println("r2.nextBoolean():\t" + r2.nextBoolean());
System.out.println("r2.nextInt():\t\t" + r2.nextInt());
System.out.println("r2.nextDouble():\t" + r2.nextDouble());
System.out.println("r2.nextGaussian():\t" + r2.nextGaussian());
System.out.println("---------------------------");
Random r3 = new Random(100);
System.out.println("種子為100的Random對象");
System.out.println("r3.nextBoolean():\t" + r3.nextBoolean());
System.out.println("r3.nextInt():\t\t" + r3.nextInt());
System.out.println("r3.nextDouble():\t" + r3.nextDouble());
System.out.println("r3.nextGaussian():\t" + r3.nextGaussian());
System.out.println("結(jié)果一目了然!");
}
}
結(jié)果:
第一個種子為50的Random對象
r1.nextBoolean(): true
r1.nextInt(): -1727040520
r1.nextDouble(): 0.6141579720626675
r1.nextGaussian(): 2.377650302287946
---------------------------
第二個種子為50的Random對象
r2.nextBoolean(): true
r2.nextInt(): -1727040520
r2.nextDouble(): 0.6141579720626675
r2.nextGaussian(): 2.377650302287946
---------------------------
種子為100的Random對象
r3.nextBoolean(): true
r3.nextInt(): -1139614796
r3.nextDouble(): 0.19497605734770518
r3.nextGaussian(): 0.6762208162903859
結(jié)果一目了然!