![](/img/trans.png)
[英][Processing 2.0]Trying to create an array of random integers and then bubble sort them
[英]How to create a random number between -2.0 and 2.0
我正在尝试在坐标平面上创建一个随机点,并且我希望x和y是-2.0和2.0之间的两个随机浮点数
鉴于我已经尝试过
x = (random.nextDouble() - 2);
y = (random.nextDouble() - 2);
上面将仅在坐标平面的负象限中返回(x,y)。
我如何使它平等地到达所有四个象限?
在0-4范围内创建一个数字(相同的幅度或您的目标范围),然后减去2以对齐范围的开始/结束:
x = random.nextDouble() * 4 - 2;
仅供参考,一点:不必在表达式中使用双精度常量,例如4.0
,因为当算术运算的操作数之一为double
,java会将其他类型的自动(安全)扩展为double
。
random.nextDouble()
返回一个介于0.0和1.0之间的随机值,因此,如果您减去2,您将获得一个介于-2.0和-1.0之间的随机值。
您还必须缩放该值-将其乘以范围的大小,在您的情况下为4:
x = 4.0 * random.nextDouble() - 2.0;
y = 4.0 * random.nextDouble() - 2.0;
random.nextDouble()仅返回0.0到1.0,您需要先将其乘以4
x = (random.nextDouble() * 4 - 2);
y = (random.nextDouble() * 4 - 2);
简单:您只需要缩放它。 减去.5
得到一个介于-.5
到.5
,然后将其乘以4,则您得到-2
和2
之间的值。
x = ((random.nextDouble() - .5) * 4);
y = ((random.nextDouble() - .5) * 4);
因此random.nextDouble()返回数字0-.9999,因此必须将其乘以范围-2-2 = 4
然后减去2以获得-2到2
x =(random.nextDouble()* 4 -2)
y =(random.nextDouble()* 4 -2)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.