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次:
52
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