首页 > 其他 > 详细

产生随机数的三种方式

时间:2018-03-03 15:13:38      阅读:218      评论:0      收藏:0      [点我收藏+]

1.  java.util.Random

   java.util.Random类提供了以下产生随机数的方法:

技术分享图片

   (1) 通过Random() 构造方法实例化的对象产生随机数

    Random r=new Random(); 

       特点:每次运行产生的随机数都不一样。

   (2) 通过Random(long seed) 构造方法实例化的对象产生随机数

    Random r=new Random(long seed);

          特点:seed相同产生的随机数相同,不同seed之间产生的随机数也不同。

 

        举例:

public void testRandom(){
 Random r=new Random();          
          Random r5=new Random(5);      
          Random r10=new Random(10);
          List<Integer> list=new ArrayList<Integer>();
          
          list.clear();
          System.out.println("1. 利用Random()构造函数产生的随机数:");
          for(int i=0;i<10;i++) {
              list.add(r.nextInt(100));         
          }
          System.out.println(list);
          System.out.println("");
          
          list.clear();
          System.out.println("2. 利用Random(5)构造函数产生的随机数:");      
          for(int i=0;i<10;i++) {
              list.add(r5.nextInt(100));                  
          }
          System.out.println(list);
          System.out.println("");
          
          
          list.clear();
          System.out.println("3. 利用Random(10)构造函数产生的随机数:");    
          for(int i=0;i<10;i++) {
              list.add(r10.nextInt(100));            
          }
          System.out.println(list);
}

 

运行结果:

第一次运行上述代码的结果如下:

技术分享图片

第二次运行上述代码的结果如下:

 技术分享图片

第三次运行上述代码的结果如下:

 技术分享图片

 

 由以上三次运行的结果不难发现:

  1) 利用Random() 构造函数实例化的对象产生的随机数每次都不一样。

  2) 利用Random(long seed) 构造函数实例化的对象产生的随机数每次都一样。

  3) seed即种子数,不同seed之间产生的随机数也不同。

 

由此可见:虽然说是随机数,但是也不是随机产生的,还是按照某种算法一步步执行产生的数,所以才会有种子数不变在不同时刻产生的值一样的结论。

 

2. Math.random()

  Math.random() 产生的是[0,1.0)的随机小数。

     举例:

public void testMathRandom(){
        System.out.println("利用Math.random()产生的随机数:");
        for(int i=0;i<10;i++) {
             System.out.println(Math.random());
        }
}

 

运行结果:

技术分享图片

 

产生随机数的三种方式

原文:https://www.cnblogs.com/nancyzhang/p/8496442.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!