Java 如何取随机数(Random)?

两种方法:
Math.random() 返回0.0~1.0的double数
创建一个Random() Random ran=new Random();

Math.random()是令系统随机选[0.0, 1.0) 的伪随机 double 值
虽然是伪随机 但是我们就默认为是unifom生成的真实随机数。

Math.random()详细用法:

所以 如果我们想在[0, 100]中随机产生整数
(int)(Math.random()*101)
这是因为类型转换中(int)会使得double向下取整,而且Math.random()*100中 100也是取不到的。

我们想在[1, 100]中随机产生整数的话
(int)(Math.random()*100 + 1)

如果我们想在[1, 100)中随机产生数的话
Math.random()*99 + 1就可以 Java自动向精度比较高的方向转变。

如果我们想在[0, 100]中产生随机数的话
怎么办呢?

Random()对象的详细用法:

Random ran=new Random(seedValue);
 
Random类中还提供各种类型随机数的方法:
nextInt():返回一个随机整数(int) //在整个整数区间里面取
nextInt(int n):返回大于等于0、小于n的随机整数(int) 
nextLong():返回一个随机长整型值(long)
nextBoolean():返回一个随机布尔型值(boolean)
nextFloat():返回一个随机浮点型值(float)
nextDouble():返回一个随机双精度型值(double)
nextGaussian():概率密度为高斯分布的双精度值(double)

get the integer within the range of [minX, maxX];
int x = randX.nextInt(maxX - minX + 1) + minX; //就是说nextInt里面取范围,这个范围就是我们想要的那个区间的长度,然后对这个区间进行平移,使得起点对齐即可。

posted @ 2020-12-06 08:32  EvanMeetTheWorld  阅读(507)  评论(0)    收藏  举报