老师,我在改一个问题就是
Random r = new Random(1);
for (int i = 0; i < 5; i++) {
double ran1 = r.nextDouble()*0.01;
System.out.println(ran1);
}
在括号里面写上一个1之后,每次返回都是固定的随机数,但是我在括号里不写东西的话,他有时候会随机出
0.006412020312278755
0.0037039297030271824
4.5564569452918315E-4
0.0020645665017904893
5.426636313082744E-4
这种情况,有俩随机数不对。我想返回都是这种0.00xxxxx这种,我这个应该怎么改啊
java中Random类提供了两个构造函数,一个默认构造器,一个带整数构造器。
构造器中所传递整数是随机数的种子,电脑中的随机数都是伪随机数,如果随机数种子相同,则使用该种子生成的随机数序列是一致的。也就是无论你运行多少次,发现随机数序列相同。
默认构造函数使用了当前的系统时间作为种子,这样运行起来每次看到的序列也就是不一样的了。
0.001E-4这种是科学计数法表示的浮点数,如果你们想要的随机数需要在某个范围,比如0.1到0.6之间的随机数,可以这样获得:
r.nextDouble()*(0.6-0.1)+0.1
0条评论
我要评论