【发布时间】:2018-02-12 14:26:14
【问题描述】:
有没有办法在指定范围之外生成随机双精度值?
我知道范围内有一个:
Random r = new Random();
double randomValue = rangeMin + (rangeMax - rangeMin) * r.nextDouble();
我需要一个超出范围的,例如
范围是 20 - 50,我想要一个低于 20 或高于 50 的数字。
有人可以建议吗?
【问题讨论】:
-
我不认为这是可能的,你可能需要写一个
if statement来检查生成的数字是否在你的范围内。如果是则生成另一个数字 -
那么这些范围的外界是什么?
-
懒惰的答案:生成随机数并丢弃范围内的随机数,反正我猜它会更快
-
下次请指定超出范围 20 - 50 不算负无穷和正无穷