Java Math.random()解释

这是一个非常简单的Java(尽管可能适用于所有编程)问题:

Math.random()返回介于零和一之间的数字。

如果我想返回零到一百之间的整数,我会这样做:

(int) Math.floor(Math.random() * 101)

在一百到一百之间,我会做:

(int) Math.ceil(Math.random() * 100)

但是,如果我想得到三到五之间的数字怎么办?它会像下面的语句:

(int) Math.random() * 5 + 3

我知道nextInt()java.lang.util.Random。但是我想学习如何使用Math.random()

回答:

int randomWithRange(int min, int max)

{

int range = (max - min) + 1;

return (int)(Math.random() * range) + min;

}

输出randomWithRange(2, 5)10次​​:

5

2

3

3

2

4

4

4

5

4

边界是包含边界的,即[2,5],并且min必须小于max上面的示例。

编辑:如果有人要尝试并变得愚蠢和扭转min和max,你可以将代码更改为:

int randomWithRange(int min, int max)

{

int range = Math.abs(max - min) + 1;

return (int)(Math.random() * range) + (min <= max ? min : max);

}

EDIT2:关于doubles 的问题,只是:

double randomWithRange(double min, double max)

{

double range = (max - min);

return (Math.random() * range) + min;

}

再说一次,如果你想证明这一点,那就是:

double randomWithRange(double min, double max)

{

double range = Math.abs(max - min);

return (Math.random() * range) + (min <= max ? min : max);

}

以上是 Java Math.random()解释 的全部内容, 来源链接: utcz.com/qa/423408.html

回到顶部