Java隨機數總結

1、Java中隨機數生成方式

1)java.util.Random
Random類中的隨機算法是僞隨機,也就是有規則的隨機,隨機數實際上是seed經過運算後近似隨機數的數字。指定seed,隨機數序列確定;默認seed爲系統當前時間戳。
常用方法:
· nextInt(),返回int值
· nextInt(n),返回[0, 1)
· nextDouble(),返回[0.0, 1.0),nextDouble()沒有參數
//Random random = new Random();//默認構造方法    
Random random = new Random(10);//指定seed
int i = random.nextInt(10);
2)Math.random()
Math工具類,Math.random()返回[0.0, 1.0)double,內部實現就是封裝了Random.nextDouble方法。
 double d = Math.random();
3)System.currentTimeMillis(),獲取系統時間戳,取餘
 long l = System.currentTimeMillis();    
 int i = (int)(l % 100);

2、範圍隨機數生成

1)整型
· [min, max),random.nextInt(max - min) + min
· [min, max],random.nextInt(max - min + 1) + min
· 以33.5%的概率生成1, 66.5%概率生成0:
Random random = new Random(10);
int sum = 0; //33.5%概率生成1,66.5%概率生成0
for (int i = 0; i < 100000; i++) {
    int data = random.nextInt(1000);
    if (data < 335) sum++;
}
System.out.println(sum);
2)浮點型
· [0, 1.0),random.nextInt()
· [0, max),random.nextInt() * max
· [min, max),random.nextInt() * (max - min) + min


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章