屬于包:java.util.Random
1、屬性。
無。
2、構造函數。
Random() :創建一個新的隨機數發生器。
Random(long seed) :用一個種子(長整型)創建一個隨機數發生器。
3、方法。
說明:
1. 所有方法均為public;
2. 書寫格式:[修飾符] <返回類型> <方法名([參數列表])>
如:
static int parseInt(String s) 表示:此方法(parseInt)為類方法(static),返回類型為(int),方法所需參數為String類型。
關于種子的描述:
這個類的對象使用一個48位的種子,
如果這個類的兩個實例是用同一個種子創建的,
并且,各自對它們以同樣的順序調用方法,
則它們會產生相同的數字序列。
下面就對上面的介紹做一個實驗,
尤其注意相同種子時的結果,
如果用默認的構造函數構造對象,
他們是屬于同一個種子的。
結果:
1、屬性。
無。
2、構造函數。
Random() :創建一個新的隨機數發生器。
Random(long seed) :用一個種子(長整型)創建一個隨機數發生器。
3、方法。
說明:
1. 所有方法均為public;
2. 書寫格式:[修飾符] <返回類型> <方法名([參數列表])>
如:
static int parseInt(String s) 表示:此方法(parseInt)為類方法(static),返回類型為(int),方法所需參數為String類型。
- 1. protected int next(int bits) :產生下一個偽隨機數。
2. boolean nextBoolean() :返回下一個從隨機發生器的系列中得到的均勻分布的布爾值。
3. void nextBytes(byte[] bytes) :產生隨機字節數組放到指定的數組中。
4. double nextDouble() :返回下一個從隨機發生器的系列中得到的均勻分布的0.0到1.0的雙精度類型值。
5. float nextFloat() :返回下一個從隨機發生器的系列中得到的均勻分布的0.0到1.0的浮點類型值。
6. double nextGaussian() :返回下一個從隨機發生器的系列中得到的符合均勻分布的0.0的平均數到1.0方差的高斯分布雙精度類型值。
7. int nextInt() :返回下一個從隨機發生器的系列中得到的均勻分布的整型值。
8. int nextInt(int n) :返回下一個從隨機發生器的系列中得到的均勻分布的0到指定整型數(n)之間的整型值。
9. long nextLong() :返回下一個從隨機發生器的系列中得到的均勻分布的長整型值。
10. void setSeed(long seed) :設置隨機數發生器的種子為一個長整型數。
關于種子的描述:
這個類的對象使用一個48位的種子,
如果這個類的兩個實例是用同一個種子創建的,
并且,各自對它們以同樣的順序調用方法,
則它們會產生相同的數字序列。
下面就對上面的介紹做一個實驗,
尤其注意相同種子時的結果,
如果用默認的構造函數構造對象,
他們是屬于同一個種子的。
代碼: |
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("結果一目了然!"); } } |
結果:
代碼: |
第一個種子為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 |