隨機數產生的方法


  1. 隨機數產生的方法:最小值+Math.random()*最大值;范圍 [最小值,最大值] 。

 

public class suijishu {
	public static void main(String[] args)
	{
		int n;
		for(int i=0;i<20;i++)
		{
			n=(int)(Math.random()*6);
			System.out.print(n+"     ");
			if((i+1)%5==0)
			System.out.println("     ");
			
		}
	}
}

 產生范圍在  [0,6]之間。

2.用new.random.nextInt(26)輸出一個處於0到26的整數

 

public class suijishu {
	public static void main(String[] args)
	{
		Random rand=new Random();
		System.out.println("rand.nextBoolean():"+rand.nextBoolean());
		System.out.println("rand.nextFloat():"+rand.nextFloat());//生成一個0.0到1.0之間的偽隨機float數。
		System.out.println("rand.nextDouble():"+rand.nextDouble());//生成一個0.0到1.0 之間的偽隨機double數。
		System.out.println("rand.nextInt(10):"+rand.nextInt(10));//生成一個0到10的偽隨機整數。
		System.out.println("rand.nextLong():"+rand.nextLong());//生成一個處於long整數取值范圍的整數。
	}
}

 3.用不同種子產生隨機數,和用當前時間來產生隨機數。

public class suijishu {
	public static void main(String[] args)
	{
		System.out.println("第一個種子為50:");
		Random r1=new Random(50);
		System.out.println("r1.nextBoolean():"+r1.nextBoolean());
		System.out.println("r1.nextDouble():"+r1.nextDouble());
		System.out.println("r1.nextFloat"+r1.nextFloat());
		System.out.println("r1.nextInt()"+r1.nextInt());
		System.out.println("r1.nextLong:"+r1.nextLong());
		System.out.println("第二個種子為50:");
		Random r2=new Random(50);
		System.out.println("r2.nextBoolean():"+r2.nextBoolean());
		System.out.println("r2.nextDouble():"+r2.nextDouble());
		System.out.println("r2.nextFloat"+r2.nextFloat());
		System.out.println("r2.nextInt()"+r2.nextInt());
		System.out.println("r2.nextLong:"+r2.nextLong());
		System.out.println("種子為100:");
		Random r=new Random(100);
		System.out.println("r.nextBoolean():"+r.nextBoolean());
		System.out.println("r.nextDouble():"+r.nextDouble());
		System.out.println("r.nextFloat"+r.nextFloat());
		System.out.println("r.nextInt()"+r.nextInt());
		System.out.println("r.nextLong:"+r.nextLong());
		System.out.println("以當前時間為種子:");
		Random rt= new Random( System.currentTimeMillis() );
		System.out.println("rt.nextBoolean():"+rt.nextBoolean());
		System.out.println("rt.nextDouble():"+rt.nextDouble());
		System.out.println("rt.nextFloat"+rt.nextFloat());
		System.out.println("rt.nextInt()"+rt.nextInt());
		System.out.println("rt.nextLong:"+rt.nextLong());

	}

 結果:種子為五十的產生數相同。種子為100的產生數不同,而種子為當前時間的所產生隨機數是獨一無二的。

3.產生1000個隨機數。

public class suijishu {
	public static void rand(long x)
	{
		long a;
		for(int i=0;i<1000;i++)
		{
			a=(x*16807)%Integer.MAX_VALUE;
			System.out.println(a);
			x=a;
			
		}		
	}
		
	public static void main(String[] args) 
	{
		System.out.println("種子數為:");
		Scanner in=new Scanner(System.in);
		long seed;
		seed=in.nextLong();
		rand(seed);		
	}
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM