Java生成隨機數

jopen 10年前發布 | 38K 次閱讀 Java Java開發

1.java的Random是偽隨機,在一個區間會等幾率生成隨機數。利用這個可實現概率問題:
實現60%幾率執行A程序,30%幾率執行B程序,10%幾率執行C程序。

Random rnd = new Random();
double d = rnd.nextDouble();
if(d<=0.6){
    System.out.println("執行A");
}else if(d<=0.9){
    System.out.println("執行B");
}else{
    System.out.println("執行C");
}



2.Random里的種子數是個生成隨機數的起源數,與生成什么沒有關系。兩個種子數相同的Random生成的同類型隨機數也是相同的,內部執行的算法是一致的,應用中一般只使用一個Random對象。但new Random()的種子數是隨機的,兩個new Random()生成的同類型隨機數基本都是不同的。
3.Random里的方法nextBytes(byte[] bytes)給bytes附上隨機字節,無返回值。
4.幾個例子:
生成[-3,15)之間的隨機數:

System.out.println(rnd.nextInt(4) * (-1) + rnd2.nextInt(15));
System.out.println(rnd.nextInt(18) - 3);



生成[1,2.5]之間的隨機數:

System.out.println(1 + rnd.nextDouble() * 0.5 + rnd.nextInt(2));
System.out.println(rnd.nextDouble() * 1.5 + 1);



生成.[0,5.0]之間的隨機數:

System.out.println(rnd2.nextDouble() + rnd2.nextInt(5));
System.out.println(rnd2.nextDouble() * 5);



5.nextBoolean隨機生成true  false,Math.random()調用的是Random的nextDouble()

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!