Java随机数
1.System.currentTimeMillis() ==>返回一个从1970年1月1号0点0分0秒到目前的一个毫秒数,返回类型是long,
可以拿它作为一个随,机数,对一些数取模,得到一定范围的随机数。
2.Math.random()==>返回一个0到1之间的double值,可以把他乘以一定的倍数来得到想要的效果。
3.Random类==>java.util.Random类有两种构建方式:带种子和不带种子 \不带种子.
不带种子
这种方式将会返回随机的数字,每次运行结果不一样:
可以拿它作为一个随,机数,对一些数取模,得到一定范围的随机数。
2.Math.random()==>返回一个0到1之间的double值,可以把他乘以一定的倍数来得到想要的效果。
3.Random类==>java.util.Random类有两种构建方式:带种子和不带种子 \不带种子.
不带种子
这种方式将会返回随机的数字,每次运行结果不一样:
输出结果是:
带种子
无论程序运行多少次,返回结果都是一样的:
输出结果,两次结果均相同,重复运行也均是同样的结果:
两种方式的差别在于?
我们先来看看API怎么说:
Random()
创建一个新的随机数生成器。
Random(long seed)
使用单个 long 种子创建一个新随机数生成器: public Random(long seed) { setSeed(seed); } next 方法使用它来保存随机数生成器的状态。
通俗说,两者的区别是:
带种子的,每次运行生成的结果都是一样的。如果用相同的种子创建两个 Random 实例,则对每个实例进行相同的方法调用序列,它们将生成并返回相同的数字序列。
不带种子的,每次运行生成的都是随机的,没有规律可言。
创建不带种子的Random对象: Random random = new Random();
创建带种子的Random对象有两种方法: 1) Random random = new Random (555L) ; 2) Random random = new Random();
random.setSeed(555L);
Random对象的nextInt(),nextInt(int n)方法的说明:
1.int nextInt(): 返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的int值。
2.int nextInt(int n):
返回一个伪随机数,它是从此随机数生成器的序列中取出的、在 0(包括)和指定值(不包括)之间均匀分布的 int值。 如下所示ran.nextInt(10):
打印结果如下,生成了0~9之间的随机整数: