java - 数组中的随机数

标签 java arrays random

int[] integers = new int[12];
Random r = new Random();
for (int i = 0; i < integers.length; i++) {
    integers[i] = r.nextInt((10 - (-10) + 1) + (-10));
}

我正在使用 online compiler 执行它它会随机抛出错误。

谁能帮我解决这个问题吗?我不知道如何写一半是消极的,一半是积极的。并且该随机数不能为 0

最佳答案

首先,要生成-10到10之间的数字,正确的代码是:

 integers[i] = r.nextInt(21)-10;

r.nextInt(21) 将生成 0 到 20 之间的数字,因此减去 10 即可得到所需的范围。

现在,您必须验证生成的随机数,以确保不会生成太多正数或负数,并且没有零。

    int posCount=0;
    int negCount=0;
    for (int i = 0; i < integers.length; i++) {
      integers[i] = r.nextInt(21)-10;
      if (integers[i]>0) 
          posCount++;
      else if (integers[i]<0) 
          negCount--;
      if (posCount>6||negCount>6||integers[i]==0)
          i--; // redo the current iteration of the loop, since the last generated
               // number should be replaced
    }

另一种运行速度更快的替代方法是先生成 6 个正整数 (r.nextInt(10)+1),然后生成 6 个负整数 (-1-r.nextInt(10)),但我不确定生成的数字的顺序是否重要(即所有正数都在所有负数之前是否可以接受)。

关于java - 数组中的随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34380983/

相关文章:

c++ - 在 C/C++ 中按照正态分布生成随机数

java - java中矩阵随机汇总每列为1

java - Accept-Language header 和 ResourceBundle 之间缺少功能

java - 如何在 Gridview Android 中保持 CheckBox 持久性(处理复选框状态)?

java - 从不同的构造函数访问和添加数据

python - 使用 Numpy 进行交易

C++11 丢弃 PRNG 序列中的数字

java - 如何使用apache poi并排添加图像word文档

javascript - JS 按特定排序顺序排序

php - 对于 PHP,如果创建新数组或向现有数组添加相同索引,内存使用情况是否存在显着差异?