Java生成随机数

1、Math.random()方法

在Math类中存在一个random()方法,用于产生随机数字。

这个方法默认生成0.0小于1.0的double型随机数,即随机生成一个double类型[0,1)

示例如下:

//1、生成[0,1)的double型数据
double d = Math.random();

//2、生成[0,100)的int型数据
int i = (int)(Math.random()*100);

//3、double型[0,99)
double d = Math.random()*99;

//4、int型[0,99)
int i = (int) Math.random()*99;
//总结:99是可以变的,如果要生成[0,50),就int i = (int) Math.random()*50;

//5、int型[0,99]
int i = (int) Math.random()*100;

//6、double型[n,m)
double d = n+Math.random()*(m-n);

//7、double型[n,m]
double d = n+Math.random()*(m-n+1);

产生一定范围内的随机数,范围包含最小值min与最大值max。

公式:(数据类型)(min+Math.random()*(max-min+1))

2、Random类

除了Math类中的random()方法可以获取随机数之外,在Java中还提供了一种可以获取随机数的方式,那就是java.util.Random类。即通过实例化一个Random对象创建一个随机数生成器。

用法如下:

//导包(导包的动作必须出现在类定义的上边)
import java.util.Random;
//创建对象
Random r=new Random();
//生成随机数
int num=r.nextInt(随机数的范围);

//随机数的范围:从0开始,到这个数-1结束
//即:包头不包尾,包左不包右

//例
int num=r.nextInt(19);//范围0-18

//[n,m)
int num=r.nextInt(m-n+1)+n;

//例 7-15
int num=r.nextInt(9)+7;

公式:

Random r=new Random();

数据类型 变量 = r.next数据类型(max-min+1)+min;