Chapter03 Random类

1.api

RandomDemo

package Chapter03_Random;

/**
 * @author cmdzhizhu
 */
/**
    java中已经有的引用类型  Random类,作用,产生随机数
    步骤:
      1. 导入包, Random类,也在java.util文件夹
      2. 公式: 创建出Random类型的变量
      3. 变量. 调用Random类中的功能,产生随机数

      Random类,提供功能 , 名字  nextInt() 产生一个随机数, 结果是int类型
      出现随机数的范围, 在功能nextInt(写一个整数), 整数: 随机出来的范围
      随机数的范围在  0 - 指定的整数之间的随机数   nextInt(100)   0-99

      产生浮点的随机数: 功能名字 nextDouble()  随机数的范围 0.0-1.0

      随机数: 伪随机数, 虚拟机根据人写好的一个算法,生成出来的
*/
import java.util.Random;
public class RandomDemo{
    public static void main(String[] args){
        //    2. 公式: 创建出Random类型的变量
        Random ran = new Random();
        // 3. 变量. 调用Random类中的功能,产生随机数
        // Random类中的,产生随机数的功能
        int i = ran.nextInt(100);
        System.out.println(i);

        //问题? 产生随机数,范围 1-100之间
        // nextInt(100) 0-99 + 1

        double d = ran.nextDouble();
        System.out.println(d);

        boolean b = ran.nextBoolean();
        System.out.println(b);

        ran.setSeed(123L);
    }
}
View Code

运行结果

*java中Random是伪随机,有时候随机数会相同,如果想让生成的随机数更加无法预测,可以用Random.setseed()设置随机数种子,使随机数更加随机。
*这个设置只能一次有效,后续如果还要生成随机数则不会影响。

*Random如果使用相同的seed值,则每次生成的随即数都相同,如果不设置这个值,则系统根据时间来自己选择这个值,此时每次生成的随机数因时间差异而不同。

当然,如果在Random构造方法中传入LONG值和setSeed()一样效果。



RandomSetseedDemo
package Chapter03_Random;

import java.util.Random;

/**
 * @author cmdzhizhu  @date 2020/5/1 18:45
 */
public class RandomSetseedDemo {
    public static void main(String[] args) throws Exception
    {
        //设置这个值 每次运行生成的数字都相同 也可以在构造方法里赋值
        Random random1 = new Random();
        random1.setSeed(100L);
        for (int j = 0; j < 5; j++) {
            System.out.print(" " + random1.nextInt(100) + ", ");
        }

        System.out.println();
        System.out.println("====================================");

        Random random2 = new Random(100L);
        for (int j = 0; j < 5; j++) {
            System.out.print(" " + random2.nextInt(100) + ", ");
        }

    }
}
View Code

运行结果

猜你喜欢

转载自www.cnblogs.com/cmdzhizhu/p/12814348.html
今日推荐