更新時間:2021-05-13 16:14:28 來源:動力節點 瀏覽1043次
在Java中我們能夠使用java.util.Random類來產生一個隨機數發生器。它有兩種形式的構造函數,各自是Random()和Random(long seed)。Random()使用當前時間即System.currentTimeMillis()作為發生器的種子,Random(long seed)使用指定的seed作為發生器的種子。
隨機數發生器(Random)對象產生以后,通過調用不同的method:nextInt()、nextLong()、nextFloat()、nextDouble()等獲得不同類型隨機數。
1>生成隨機數
Random random=new Random();
Random random=new Random(100);//指定種子數100
random調用不同的方法,獲得隨機數。
假設2個Random對象使用同樣的種子(比方都是100),而且以同樣的順序調用同樣的函數,那它們返回值全然同樣。如以下代碼中兩個Random對象的輸出全然同樣。
import java.util.*;
class TestRandom {
public static void main(String[] args) {
Random random1 = new Random(100);
System.out.println(random1.nextInt());
System.out.println(random1.nextFloat());
System.out.println(random1.nextBoolean());
Random random2 = new Random(100);
System.out.println(random2.nextInt());
System.out.println(random2.nextFloat());
System.out.println(random2.nextBoolean());
}
}
2>指定范圍內的隨機數
隨機數控制在某個范圍內,使用模數運算符%
import java.util.*;
class TestRandom {
public static void main(String[] args) {
Random random = new Random();
for(int i = 0; i < 10;i++) {
System.out.println(Math.abs(random.nextInt())%10);
}
}
}
獲得的隨機數有正有負的,用Math.abs使獲取數據范圍為非負數
3>獲取指定范圍內的不反復隨機數
import java.util.*;
class TestRandom {
public static void main(String[] args) {
int[] intRet = new int[6];
int intRd = 0; //存放隨機數
int count = 0; //記錄生成的隨機數個數
int flag = 0; //是否已經生成過標志
while(count<6){
Random rdm = new Random(System.currentTimeMillis());
intRd = Math.abs(rdm.nextInt())%32+1;
for(int i=0;i<count;i++){
if(intRet[i]==intRd){
flag = 1;
break;
}else{
flag = 0;
}
}
if(flag==0){
intRet[count] = intRd;
count++;
}
}
for(int t=0;t<6;t++){
System.out.println(t+"->"+intRet[t]);
}
}
}
以上就是動力節點Java培訓機構的小編針對“Java如何獲取隨機數”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習