1. 程式人生 > >java產生隨機數方法比較

java產生隨機數方法比較

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>帶種子

兩者的區別是:
帶種子的,每次執行生成的結果都是一樣的。
不帶種子的,每次執行生成的都是隨機的,沒有規律可言。

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());
		}		
	}
}
3.產生固定範圍的隨機數
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);
		}
	}
	
}