美文网首页
Java随机数

Java随机数

作者: 奶盐味小圆饼 | 来源:发表于2020-04-29 23:15 被阅读0次

    Java中产生随机数的方法有两种:

    • 第一种:Math.random()
    • 第二种:new Random()
    一、java.lang.Math.Random:

    调用这个Math.Random()函数能够返回带正号的double值,取值范围是[0.0,1.0),在该范围内(近似)均匀分布。因为返回值是double类型的,小数点后面可以保留15位小数,所以产生相同的可能性非常小,在这一定程度上是随机数。

    二、java.util.Random:
          Random r1 = new Random();
          Random r2 = new Random();
    
          Random r3 = new Random(10);
          Random r4 = new Random(10);
    
    下面Random()的两种构造方法:

    Random():使用一个和当前系统时间对应的相对时间有关的数字作为种子数。

    Random(long seed):直接传入一个种子数。

    种子的作用是什么?

    种子就是产生随机数的第一次使用值,机制是通过一个函数,将这个种子的值转化为随机数空间中的某一个点上,并且产生的随机数均匀的散布在空间中。以后产生的随机数都与前一个随机数有关。

    举例:

      Random r =new Random(100);
      System.out.println(r.nextInt(20));
    

    种子数只是随机算法的起源数字,和生成的随机数字的区间没有任何关系。

    初始化时100并没有起直接作用(注意:不是没有起作用),r.nextInt(20)中的20是随机数的上限,产生的随机数为0-20的整数,不包括20。

    总结一下:

    1.同一个种子,生成N个随机数,当你设定种子的时候,这N个随机数是什么已经确定。相同次数生成的随机数字是完全相同的。

    2.如果用相同的种子创建两个 Random 实例,如上面的r3,r4,则对每个实例进行相同的方法调用序列,它们将生成并返回相同的数字序列.

    1. Java的随机数都是通过算法实现的,Math.random()本质上属于Random()类.

    2. 使用java.util.Random()会相对来说比较灵活一些。

    相关文章

      网友评论

          本文标题:Java随机数

          本文链接:https://www.haomeiwen.com/subject/xdvnwhtx.html