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