Java中的随机数详解

时间:2022-02-05 10:04:26

在java中我们可以使用java.util.Random类来产生一个随机数发生。它有两个构造函数,分别是Random()和Random(long seed)。Random()是用当前时间即System.currentTimeMillis()作为发生器的种子,而Random(long seed)是用指定的seed作为发生器的种子。 

当随机数发生器就是Random对象产生以后,可以通过对象调用不同的方法:nextInt()、nextLong()、nextFloat()、nextDouble()等来获得不同类型的随机数。 如果2个Random对象使用相同的种子(比如都是100),并且以相同的顺序调用相同的函数,那么它们的返回值完全相同。
话多无益,我先举个栗子,如下代码:

Java中的随机数详解

但是,我想要某个范围的数字怎么办呢?比如我想随机产生 0-99之间的随机数,这个时候我们可以使用模数运算符%。
将模数运算符%作用于随机数产生器所产生的随机数身上,目的就是为了让随机数的最大值属于我们所制定的操作数数值减1范围内。看下面代码就将输入控制在0~99的范围内。(友情提示:如果不加Math.abs(),输出范围将是-99~99。 )
先看不加Math.abs()的情况,如下

Java中的随机数详解

在看加了的情况,如下:

Java中的随机数详解