java中1-3随机数的⽣成_java的三种随机数⽣成⽅式的实现⽅
随机数的产⽣在⼀些代码中很常⽤,也是我们必须要掌握的。⽽java中产⽣随机数的⽅法主要有三种:
第⼀种:new Random()
第⼆种:Math.random()
第三种:currentTimeMillis()
第⼀种需要借助java.util.Random类来产⽣⼀个随机数发⽣器,也是最常⽤的⼀种,构造函数有两个,Random()和Random(long seed)。第⼀个就是以当前时间为默认种⼦,第⼆个是以指定的种⼦值进⾏。产⽣之后,借助不同的语句产⽣不同类型的数。
种⼦就是产⽣随机数的第⼀次使⽤值,机制是通过⼀个函数,将这个种⼦的值转化为随机数空间中的某⼀个点上,并且产⽣的随机数均匀的散布在空间中。以后产⽣的随机数都与前⼀个随机数有关。以代码为例。
public static void main(String[] args)
{
Random r = new Random(1);
for(int i=0 ; i<5 ; i++)
{
int ran1 = r.nextInt(100);
System.out.println(ran1);
}
}
在我的编译器下产⽣的五个数均为85,88,47,13,54,如果采⽤Random r = new Random(),产⽣的随机数就不同,这就是确定种⼦导致的结果。
⽽第⼆种⽅法返回的数值是[0.0,1.0)的double型数值,由于double类数的精度很⾼,可以在⼀定程度下看做随机数,借助(int)来进⾏类型转换就可以得到整数随机数了,代码如下。
public static void main(String[] args)
{
int max=100,min=1;
int ran2 = (int) (Math.random()*(max-min)+min);
System.out.println(ran2);
}
⾄于第三种⽅法虽然不常⽤,但是也是⼀种思路。⽅法返回从1970年1⽉1⽇0时0分0秒(这与UNIX系统有关)到现在的⼀个long型的毫秒数,取模之后即可得到所需范围内的随机数。
public static void main(String[] args)
{
int max=100,min=1;
long randomNum = System.currentTimeMillis();
int ran3 = (int) (randomNum%(max-min)+min);
nextint()方法
System.out.println(ran3);
}
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持脚本之家。