解读random()生成随机数

随机数,我们都很常见,如何生成,也很简单,但是不仅要会生成,还要了解。

其中random()中有一个参数:

  • seed:表示指定随机生成器的种子。

例如:
随机从0-10生成五个随机数

public class random{
    public static void main(String[]args){
         Random r1 = new Random();
         for(int i = 0; i<5; i++){
              System.out.println(r1.nextInt(10));;
         }
     }
}

结果:
在这里插入图片描述

提问一:要是同时生成两组随机数,结果会一样吗?答案是no

public class random{
    public static void main(String[]args){
        Random r1=new Random(2);
        for(int i =0 ;i<5;i++){
            System.out.println(r1.nextInt(10));;
        }
        System.out.println("---------");
        Random r2=new Random();
        for(int i=0;i<5;i++){
           System.out.println(r2.nextInt(10));;
        }
    }
}

结果:
在这里插入图片描述

为什么会不一样?
答案是:默认的情况下,seed是与时间戳有关的,当执行第二个random函数时,时间已经变化。

那么如果设定seed的时候,两种随机数会一样吗?答案是yes

public class random{
    public static void main(String[]args){
        Random r1=new Random(5);
        for(int i =0 ;i<5;i++){
            System.out.println(r1.nextInt(10));;
        }
        System.out.println("---------");
        Random r2=new Random(5);
        for(int i=0;i<5;i++){
            System.out.println(r2.nextInt(10));;
        }
    }
}

结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

积跬步至万里

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值