java - 限制重复的随机数

标签 java arrays random

我只想知道如何限制随机数出现的次数。我生成了 1 到 10 的随机数,并希望限制每个数字出现 4 次。

myArray[i][j] = rand.nextInt(11);

for (int i=0; i < myArray.length; i++) {
   for (int j=0; j < myArray[i].length; j++) {
       myArray[i][j] = rand.nextInt(11);
       System.out.print(" " + myArray[i][j]);

上面的代码创建了随机数。只是想限制他们。

最佳答案

由于您被限制为 10 * 4 = 40 个数字,您可以使用列表并随机化索引:

List<Integer> numbers = new ArrayList<Integer>();
for (int i = 1; i < 11; ++i) {
   for (int j = 0; j < 4; ++j) 
      numbers.add(i);
}

然后当你分配一个随机数时:

int i = rand.nextInt(numbers.size());
myArray[i][j] = numbers.get(i);
numbers.remove(i);

这假设您的二维不会包含超过 40 个数字

关于java - 限制重复的随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21703867/

相关文章:

java - 如何从随机数系列中排除某个数字?

jquery - 随机化每个循环

java - 我可以通过这种方式传递列名吗?

java - JDK 6 Calendar October 20 2041 BUG

php - 如何获取数组中某些数组的值之和?

arrays - 给定一个未排序的整数数组,找到不可搜索的数字

string - Flutter如何生成随机字符串

java - "cannot find symbol method getGL()"(现在也是 getGLU())

java - 您自己的 OpenID Connect 提供商(开源)

arrays - 根据其中一个数组的字母顺序在 Swift 中对 2 个数组进行排序