简述
在java中想得到随机数一般有三种方法:使用Random类、使用Math类的random方法、使用currentTimeMillis方法
随机数区间映射的技巧
例如最终你想得到一个区间是 [max,min) 的随机数
如果你现在只有[0,1)的随机数,我们设为 ran,那么目标随机数即为 ran * (max - min) + min
如果你可以控制生成[0,n)的随机数,那么只需令 n = (max - min + 1),目标随机数即为 ran + min
如果你得到的是一个纯随机的随机数,那么目标随机数为 ran % ( max - min ) + min
Random类
构造方法
Random() 创建一个新的随机数生成器
Random(long seed) 使用指定的种子
得到随机数
nextBoolean() 返回随机的boolean值随机数
nextDouble() 返回在0.0和1.0之间均匀分布的double值随机数
nextInt(int n):返回在0和1之间均匀分布的int值随机数
nextGaussian() 返回呈高斯(“正态”)分布的double值,其平均值是0.0标准差是1.0
Math类
Math.random() 方法返回 [0,1) 之间的浮点数,然后我们进行运算就可以得到任意区间的随机数
currentTimeMillis
System.currentTimeMillis() 方法返回从1970年1月1日0时0分0秒(这与UNIX系统有关)到现在的一个long型的毫秒数,取模之后即可得到所需范围内的随机数