zoukankan      html  css  js  c++  java
  • Java基础知识12--Random类

    一、简介

    Random类位于java.util包下,此类的实例用于生成伪随机数流。之所以称之为伪随机,是因为真正意义上的随机数(或者称为随机事件)在某次产生过程中是按照实验过程表现的分布概率随机产生的,其结果是不可预测,不可见的。而计算机中的随机函数是按照一定的算法模拟产生的,其结果是确定的,可见的。我们认为这样产生的数据不是真正意义上的随机数,因而称之为伪随机。

    二、Random类的使用

    2.1 生成Random对象

    Java API中提供了两个构造方法来new一个Random对象。无参构造底层调用的也是有参构造,将System.nanoTime()作为参数传递。即如果使用无参构造,默认的seed值为System.nanoTime()。

    Random rand =new Random(25);
    int i;
    i=rand.nextInt(100);

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

    测试案例:

    public class RandomTest {
        public static void main(String[] args) {
            Random ran1 = new Random(20);
            System.out.println("使用种子为20的Random对象生成[0,10)内随机整数序列: ");
            for (int i = 0; i < 10; i++) {
                System.out.print(ran1.nextInt(10) + " ");
            }
            System.out.println();
    
            Random ran2 = new Random(20);
            System.out.println("使用另一个种子为20的Random对象生成[0,10)内随机整数序列: ");
            for (int i = 0; i < 10; i++) {
                System.out.print(ran2.nextInt(10) + " ");
            }
            System.out.println();
    
            Random ran3 = new Random(10);
            System.out.println("使用另一个种子为10的Random对象生成[0,10)内随机整数序列: ");
            for (int i = 0; i < 10; i++) {
                System.out.print(ran3.nextInt(10) + " ");
            }
            System.out.println();
        }
    }

    运行效果:

    2.2 Java.util.Random 常用方法

    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.0int nextInt():返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的 int 值。
    int nextInt(int n):返回一个伪随机数,它是取自此随机数生成器序列的、在(包括和指定值(不包括)之间均匀分布的int值。
    long nextLong():返回下一个伪随机数,它是取自此随机数生成器序列的均匀分布的 long 值。
    void setSeed(long seed):使用单个 long 种子设置此随机数生成器的种子。

    测试案例:

        public static void main(String[] args) {
            Random random = new Random();
            System.out.println("nextInt():" + random.nextInt());   //随机生成一个整数,这个整数的范围就是int类型的范围-2^31~2^31-1
            System.out.println("nextInt(20):" + random.nextInt(20));   //随机生成一个整数,这个整数的范围就是[0,20)
            System.out.println("nextLong():" + random.nextLong());      //随机生成long类型范围的整数
    
            System.out.println("nextFloat():" + random.nextFloat());    //随机生成[0, 1.0)区间的小数
            System.out.println("nextDouble():" + random.nextDouble());  //随机生成[0, 1.0)区间的小数
        }

    执行结果:

    参考文献:

    https://www.cnblogs.com/yrrAwx/p/7806444.html

  • 相关阅读:
    接口测试框架——第五篇-测试用例和运行用例
    接口测试框架——第四篇-url、excel内容等
    flex布局
    JSON 对象 与 字符串 互转
    nginx 拒绝本地ip访问
    supervisord
    工作中小玩意
    nginx 反向代理
    php获取当月天数及当月第一天及最后一天
    Homebrew 备忘
  • 原文地址:https://www.cnblogs.com/luckyplj/p/15272904.html
Copyright © 2011-2022 走看看