更新時間:2021-05-25 11:10:55 來源:動力節點 瀏覽1030次
使用Random類,一般是生成指定區間的隨機數字,下面就一一介紹如何生成對應區間的隨機數字。以下生成隨機數的代碼均使用以下Random對象r進行生成:
Random r = new Random();
1.生成[0,1.0)區間的小數
double d1 = r.nextDouble();
直接使用nextDouble方法獲得。
2.生成[0,5.0)區間的小數
double d2 = r.nextDouble() * 5;
因為nextDouble方法生成的數字區間是[0,1.0),將該區間擴大5倍即是要求的區間。
同理,生成[0,d)區間的隨機小數,d為任意正的小數,則只需要將nextDouble方法的返回值乘以d即可。
3.生成[1,2.5)區間的小數
double d3 = r.nextDouble() * 1.5 + 1;
生成[1,2.5)區間的隨機小數,則只需要首先生成[0,1.5)區間的隨機數字,然后將生成的隨機數區間加1即可。
同理,生成任意非從0開始的小數區間[d1,d2)范圍的隨機數字(其中d1不等于0),則只需要首先生成[0,d2-d1)區間的隨機數字,然后將生成的隨機數字區間加上d1即可。
4.生成任意整數
int n1 = r.nextInt();
直接使用nextInt方法即可。
5.生成[0,10)區間的整數
int n2 = r.nextInt(10);
n2 = Math.abs(r.nextInt() % 10);
以上兩行代碼均可生成[0,10)區間的整數。
第一種實現使用Random類中的nextInt(int n)方法直接實現。
第二種實現中,首先調用nextInt()方法生成一個任意的int數字,該數字和10取余以后生成的數字區間為(-10,10),然后再對該區間求絕對值,則得到的區間就是[0,10)了。
同理,生成任意[0,n)區間的隨機整數,都可以使用如下代碼:
int n2 = r.nextInt(n);
n2 = Math.abs(r.nextInt() % n);
6.生成[0,10]區間的整數
int n3 = r.nextInt(11);
n3 = Math.abs(r.nextInt() % 11);
相對于整數區間,[0,10]區間和[0,11)區間等價,所以即生成[0,11)區間的整數。
7.生成[-3,15)區間的整數
int n4 = r.nextInt(18) - 3;
n4 = Math.abs(r.nextInt() % 18) - 3;
生成非從0開始區間的隨機整數,可以參看上面非從0開始的小數區間實現原理的說明。
以上就是動力節點小編介紹的"Java Random生成隨機數實例",希望對大家有幫助,如有疑問,請在線咨詢,有專業老師隨時為您服務。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習