您的位置:首页 > 编程语言 > Java开发

JAVA随机数生成 | Math.random()方法 | 随机生成int、double类型

2017-04-08 13:43 891 查看
Mathrandom

double随机数
要获取一个xy的double类型的随机数 左闭右开

要获取一个xy的double类型的随机数 左开右闭

要获取一个xy的double类型的随机数 左闭右闭

要获取一个xy的double类型的随机数 左开右开

int随机数
要获取一个xy的int类型的随机数 左闭右开

要获取一个xy的int类型的随机数 左开右闭

要获取一个xy的int类型的随机数 左闭右闭

要获取一个xy的int类型的随机数 左开右开

注意1

注意2

Math.random()

a pseudorandom double greater than or equal to 0.0 and less than 1.0.

即返回一个[0,1)的double类型的随机数

以下情况 | y>x


double随机数

要获取一个[x,y)的double类型的随机数 | 左闭右开

double d = x + Math.random() * (y - x);


要获取一个(x,y]的double类型的随机数 | 左开右闭

double d = y - Math.random() * (y - x);


要获取一个[x,y]的double类型的随机数 | 左闭右闭

double d = x + Math.random() * y % (y - x + 1);


要获取一个(x,y)的double类型的随机数 | 左开右开

double d = (y - Math.random()) % y;


int随机数

要获取一个[x,y)的int类型的随机数 | 左闭右开

int d = x + (int)(Math.random() * (y - x));


要获取一个(x,y]的int类型的随机数 | 左开右闭

int d = y - (int)(Math.random() * (y - x));


要获取一个[x,y]的int类型的随机数 | 左闭右闭

int i = x + (int)(Math.random() * (y - x + 1));


要获取一个(x,y)的int类型的随机数 | 左开右开

int d = (int)((y - Math.random()) % y);


注意1

Random r = new Random();
double rs = r.nextDouble();
int in = r.nextInt(500);


提供另一种解决思路

注意2

Math
类中有一
floor(double a)
方法

public static double floor(double a)


返回最大的(最接近正无穷大)double 值,该值小于等于参数,并等于某个整数。

所以对于要获取一个[x,y]的double类型的随机数 | 左闭右闭时候

可以采用以下解决思路:

Double.valueOf( x + Math.floor(random.nextDouble() * y % (y - x + 1));
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java
相关文章推荐