Java生成随机数的方法

一、使用Math.random()方法

直接使用Math.random()这个静态的方法,random()方法返回一个[0,1)的随机数;

Math.random() 产生的随机数是0-1之间的一个double,我们可以把他乘以一定的数,比如说乘以100,他就是个100以内的随机

int ran = Math.random()*100
System.out.println((int)Math.random()*10);	//优先级
System.out.println((int)(Math.random()*10));

输出:
0
7
//1-10的随机数
int random=(int)(Math.random()*10+1);
 
//1-50的随机数
new Random().nextInt(50) + 1
如果要获得随机两位整数,代码写成:rand.nextInt(90) + 10;

可以验证下,按照这样理解,[1, 100] 的随机数,是不是应该写成rand.nextInt(100) + 1 。rand.nextInt(100)生成[0,100),再加上1,刚好就是表示[1,100]区间范围。

因此,生成随机三位数的代码为:rand.nextInt(900)+ 100;

生成区间 [64,128] 中随机值的代码为:rand.nextInt(65)+ 64;

取值可能性的数量是如何计算出来的呢?当然是 最大取值-最小取值+1 ,所以,生成指定范围内的随机数的公式如下:

int randNumber =new Random().nextInt(MAX - MIN + 1) + MIN; // randNumber 将被赋值为一个 MIN 和 MAX 范围内的随机数
二、使用java.util包中的Random类

我们可以新建一个Random的对象来产生随机数,他可以产生随机整数、随机float、随机double,随机long

Random rd = new Random();
int r = rd.nextInt(100)
三、使用System.currentTimeMillis();

在我们的System类中有一个currentTimeMillis()方法,这个方法返回一个从1970年1月1号0点0分0秒到目前的一个毫秒数,返回类型是long。

我们可以拿他作为一个随机数,我们可以拿他对一些数取模,就可以把他限制在一个范围之内啦

你可能感兴趣的:(Java,java,开发语言)