Random類用來生成亂數字
Random類的使用步驟
- 導包
import java.util.Random;
- 創建物件
Random r = new Random();
- 使用
int num=r.nextInt(); //隨機生成一個整數,這個整數的范圍就是int型別的范圍-2^31~2^31-1
同理,nextBoolean()回傳布爾型別的亂數,nextDouble()回傳double型別的亂數...
其中,nextInt(int n)回傳指定范圍的int型別的亂數,這個范圍[0,n)左閉右開,包括0而不包括n的亂數,例如n=3時,它回傳的亂數的可能取值的0,1,2,
練習
根據int變數n的值,來獲取亂數字,范圍[1,n],可以取到1也可以取到n,
int n=5;
Random r=new Random();
int result=r.nextInt(n)+1;
System.out.println(result);
進階使用
- Random類中實作的隨機演算法是偽隨機,也就是有規則的隨機,在進行隨機時,隨機演算法的起源數字稱為種子數( seed),在種子數的基礎上進行一定的變換,從而產生需要的亂數字,
- 相同種子數的 Random物件,相同次數生成的亂數字是完全相同的,也就是說,兩個種子數相同的 Random物件,第一次生成的亂數字完全相同,第二次生成的亂數字也完全相同,這點在生成多個亂數字時需要特別注意,
例如:
import java.util.Random;
public class RandomDemo1 {
public static void main(String[] args) {
int i = 0;
int j = 0;
Random random = new Random(1);
Random random1 = new Random(1);
i = random.nextInt();
j = random1.nextInt();
System.out.println("i:" + i + "\nj:" + j);
}
}
/*運行結果:
i:-1155869325
j:-1155869325
* */
再次強調:種子數只是隨機演算法的起源數字,和生成的亂數字的區間無關,
Random類的構造方法
public Random()該構造方法使用一個和當前系統時間對應的相對時間有關的數字作為種子數,然后使用這個種子數構造 Random物件,public Random(long seed)該構造方法可以通過指定一個種子數進行創建,
Random的常用示例
- 想生成范圍在[0,n]的整數
random.nextInt(n+1);
- 想生成范圍在[m,n]的整數
random.nextInt(n-m+1) + m;
- 生成[0,5.0)區間的小數
random.nextDouble() * 5;
- 生成[1,2.5)區間的小數
random.nextDouble() * 1.5 + 1;//先算出[0,1.5)的亂數,然后整體加1
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/412872.html
標籤:Java
