java產生隨機數方法比較
阿新 • • 發佈:2019-02-08
1.使用java.lang.Math.random()中的Math.random()這一靜態方法
public class Choose { public static void main(String[] args) { double number=Math.random();//包含在lang包中,產生0.0到1.0之間double型別的隨機數,j2se中有,j2me中不存在 System.out.println(number); int number2=(int)(Math.random()*100);//產生0到100之間的隨機整數 System.out.println(number2); } }
2.使用java.util.Random物件
1>不帶種子
2>帶種子
兩者的區別是:
帶種子的,每次執行生成的結果都是一樣的。
不帶種子的,每次執行生成的都是隨機的,沒有規律可言。
3.產生固定範圍的隨機數import java.util.Random; public class Choose{ public static void main(String[] args){ testNoSeed();//不帶種子,每次執行結果都是隨機的 testSeed();//帶種子,每次執行結果一樣 } public static void testNoSeed(){ Random random=new Random(); for(int i=1;i<4;i++) { System.out.println(random.nextInt()); } } public static void testSeed(){ Random random=new Random(555); //或者Random random=new Random(); random.setSeed(555L); for(int i=1;i<4;i++) { System.out.println(random.nextInt()); } } }
import java.util.Random; public class Choose{ public static void main(String[] args){ testArea1();//產生固定範圍的數字 testArea2(); } public static void testArea1(){ Random random=new Random(); for(int i=1;i<4;i++){ System.out.println(random.nextInt(1000));//產生0到1000之間的整數。[0,1000),不含1000 } } public static void testArea2(){ Random random=new Random(); for(int i=1;i<4;i++){ System.out.println(random.nextInt(900)+100);//產生一個三位數整數 } } }
4.使用currentTimeMillis()方法
public class Choose{
public static void main(String[] args){
int i=(int)(System.currentTimeMillis()%10);
for(int j=1;j<=3;j++){
System.out.println(i);
}
}
}