生成rand值属于两个不同的范围

时间:2012-09-15 18:36:42

标签: java random

我需要使用Random对象生成随机值。它生成从0到1的值,但我想生成属于[0,10e-7][10e-7,1]范围的随机值。

2 个答案:

答案 0 :(得分:3)

double max, min; 
if (Math.random() > .5) { // adjust ratio of ranges here
    min = 0;
    max = .00000001;
} else {
    min = .00000001;
    max = 1;
}
double random = Math.random() * (max - min) + min;

答案 1 :(得分:0)

您可以使用nextDouble()类的Random方法获取0到10e-7之间的数字。

然后,在第一种情况下,将数字除以10e7得到[0,10e-7]范围内的值,如果低于第二种情况的该值,则将10e-7加到生成值中。