【发布时间】:2014-09-23 11:41:13
【问题描述】:
我有一个可以容纳 5 个整数的数组。在 for 循环中,我使用 Math.random() 用 0 到 10 之间的随机整数值填充数组,可以是正数或负数。我怎样才能收到负值?有人建议我将公式乘以 -1 以用正值和负值填充数组,但是当我这样做时,数组中的所有值都是负数。我认为问题出在这一行
int r = 0 + (int) (Math.random() * 10 *(-1));
这是代码:
public class Random
{
public static void main(String [] args)
{
int [] arr= new int[5];
for(int k=0; k<arr.length; k++)
{
int r = 0 + (int) (Math.random() * 10 *(-1));
arr[k] = r;
}
int j = 0;
while(i<arr.length) {
System.out.print(arr[i] + " ");
j++;
}
}
}
现在我的输出是 -7 -3 -3 -5 -6
我希望我的输出是 7 -3 3 -5 6
【问题讨论】:
-
尝试
arr[k] = r * ((Math.random() > 0.5) ? 1 : -1)将随机添加到负/正。或者您可以移动随机区间的范围(Eran 的回答)
标签: java arrays loops for-loop