1. 随机数产生的方法:最小值+Math.random()*最大值;范围 [最小值,最大值] 。

 

  1. public class suijishu {
  2. public static void main(String[] args)
  3. {
  4. int n;
  5. for(int i=0;i<20;i++)
  6. {
  7. n=(int)(Math.random()*6);
  8. System.out.print(n+" ");
  9. if((i+1)%5==0)
  10. System.out.println(" ");
  11. }
  12. }
  13. }

 产生范围在  [0,6]之间。

2.用new.random.nextInt(26)输出一个处于0到26的整数

 

  1. public class suijishu {
  2. public static void main(String[] args)
  3. {
  4. Random rand=new Random();
  5. System.out.println("rand.nextBoolean():"+rand.nextBoolean());
  6. System.out.println("rand.nextFloat():"+rand.nextFloat());//生成一个0.0到1.0之间的伪随机float数。
  7. System.out.println("rand.nextDouble():"+rand.nextDouble());//生成一个0.0到1.0 之间的伪随机double数。
  8. System.out.println("rand.nextInt(10):"+rand.nextInt(10));//生成一个0到10的伪随机整数。
  9. System.out.println("rand.nextLong():"+rand.nextLong());//生成一个处于long整数取值范围的整数。
  10. }
  11. }

 3.用不同种子产生随机数,和用当前时间来产生随机数。

  1. public class suijishu {
  2. public static void main(String[] args)
  3. {
  4. System.out.println("第一个种子为50:");
  5. Random r1=new Random(50);
  6. System.out.println("r1.nextBoolean():"+r1.nextBoolean());
  7. System.out.println("r1.nextDouble():"+r1.nextDouble());
  8. System.out.println("r1.nextFloat"+r1.nextFloat());
  9. System.out.println("r1.nextInt()"+r1.nextInt());
  10. System.out.println("r1.nextLong:"+r1.nextLong());
  11. System.out.println("第二个种子为50:");
  12. Random r2=new Random(50);
  13. System.out.println("r2.nextBoolean():"+r2.nextBoolean());
  14. System.out.println("r2.nextDouble():"+r2.nextDouble());
  15. System.out.println("r2.nextFloat"+r2.nextFloat());
  16. System.out.println("r2.nextInt()"+r2.nextInt());
  17. System.out.println("r2.nextLong:"+r2.nextLong());
  18. System.out.println("种子为100:");
  19. Random r=new Random(100);
  20. System.out.println("r.nextBoolean():"+r.nextBoolean());
  21. System.out.println("r.nextDouble():"+r.nextDouble());
  22. System.out.println("r.nextFloat"+r.nextFloat());
  23. System.out.println("r.nextInt()"+r.nextInt());
  24. System.out.println("r.nextLong:"+r.nextLong());
  25. System.out.println("以当前时间为种子:");
  26. Random rt= new Random( System.currentTimeMillis() );
  27. System.out.println("rt.nextBoolean():"+rt.nextBoolean());
  28. System.out.println("rt.nextDouble():"+rt.nextDouble());
  29. System.out.println("rt.nextFloat"+rt.nextFloat());
  30. System.out.println("rt.nextInt()"+rt.nextInt());
  31. System.out.println("rt.nextLong:"+rt.nextLong());
  32.  
  33. }

 结果:种子为五十的产生数相同。种子为100的产生数不同,而种子为当前时间的所产生随机数是独一无二的。

3.产生1000个随机数。

  1. public class suijishu {
  2. public static void rand(long x)
  3. {
  4. long a;
  5. for(int i=0;i<1000;i++)
  6. {
  7. a=(x*16807)%Integer.MAX_VALUE;
  8. System.out.println(a);
  9. x=a;
  10. }
  11. }
  12. public static void main(String[] args)
  13. {
  14. System.out.println("种子数为:");
  15. Scanner in=new Scanner(System.in);
  16. long seed;
  17. seed=in.nextLong();
  18. rand(seed);
  19. }
  20. }

 

版权声明:本文为dixingchen原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/dixingchen/p/11601616.html