美文网首页
Random生成随机数和范围内随机数

Random生成随机数和范围内随机数

作者: YongSiv | 来源:发表于2019-07-24 14:40 被阅读0次

    JAVA生成随机数有两个常用类,一个是java.util.Random,另一个是java.lang.Math,这两个类生成的随机数还是有一定区别的

    一、 java.lang.Math类生成随机数

    • Math.random()是一个静态方法,默认随机生成的是[0~1)的double类型小数:
            double random = Math.random();
            System.out.println("生成[0,1)的小数值:" + random);
    
    • 生成随机整数[0~N)的整数(Math.random() * N)
            double random = Math.random() * 5;
            int value = (int) random;
            System.out.println("生成[0, 5)的整数值" + value);
    

    二、 java.util.Random类生成随机数(生成随机数方法更多,更常用)

    • 生成[0, 1)的double类型小数
            Random random = new Random();
            double value = random.nextDouble();
            System.out.println(value);
    
    • 生成[0, N)的随机整数, random.nextInt(N)
            Random random = new Random();
            int value = random.nextInt(10);
            System.out.println(value);
    
    • 生成其它随机数
      protected int next(int bits):生成下一个伪随机数。
      boolean nextBoolean():返回下一个伪随机数,它是取自此随机数生成器序列的均匀分布的boolean值。
      void nextBytes(byte[] bytes):生成随机字节并将其置于用户提供的 byte 数组中。
      double nextDouble():返回下一个伪随机数,它是取自此随机数生成器序列的、在0.0和1.0之间均匀分布的 double值。
      float nextFloat():返回下一个伪随机数,它是取自此随机数生成器序列的、在0.0和1.0之间均匀分布float值。
      double nextGaussian():返回下一个伪随机数,它是取自此随机数生成器序列的、呈高斯(“正态”)分布的double值,其平均值是0.0标准差是1.0。
      int nextInt():返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的 int 值。
      int nextInt(int n):返回一个伪随机数,它是取自此随机数生成器序列的、在(包括和指定值(不包括)之间均匀分布的int值。
      long nextLong():返回下一个伪随机数,它是取自此随机数生成器序列的均匀分布的 long 值。
      void setSeed(long seed):使用单个 long 种子设置此随机数生成器的种子。

    三、生成范围内随机数[min, max], random.nextInt(max) % (max - min + 1) + min

    Random random = new Ramdom(System.currentTimeMillis());
    int value = random.nextInt(20) % (20 - 5 + 1) + 5;
    System.out.println(value);
    

    Random random = new Ramdom(bounds); Random类参数解释:
    random类生成随机数,其实不是正真意义上的随机数,他是根据内部制定的规则,随机生成的伪随机数,每次按相同方式去生成随机数,生成的值会是一样。当我们给了bounds这个种子数,它会根据给的种子数去生成随机数,因为我们给的种子数是系统时间,种子数一直在改变,生成的值肯定不同。

    相关文章

      网友评论

          本文标题:Random生成随机数和范围内随机数

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