0

我有一个数组

(1,2,2,2,3,3,4,5,5,5,5,5,5)

考虑到元素的总和,我必须随机找到一个位置。例如,如果 5 - 是六次,而 1 - 只有一,那么 5 必须六次经常是随机的

4

4 回答 4

3

您需要获取数组的随机索引:

int randomIndex = Random.nextInt(array.length);
int randomValue = array[randomIndex]
于 2012-04-25T10:58:21.943 回答
3

像这样的东西?

int array[] = {1,2,2,2,3,3,4,5,5,5,5,5,5};
int randomIndex = Random.nextInt(array.length);
int randomNumber = array[randomIndex];
于 2012-04-25T10:58:59.123 回答
1

就像另一个答案所说的那样,您需要一个 int 范围为 0:length-1。

我建议使用:

Random r = new Random();
int index = r.nextInt(array.length);
int randomValue = array[index];

在这里你可以看到 Math.random() 和 Random 对象的 nextInt() 方法之间的区别:

Math.random() 与 Random.nextInt(int)

于 2012-04-25T10:59:52.243 回答
0

尝试这个:

  1 import java.util.Random;
  2 
  3 class Rnd {public static void main(String... args) {
  4     int[] data = new int[]{1,2,2,2,3,3,4,5,5,5,5,5,5};
  5     System.out.print(data[new Random().nextInt(data.length)]);
  6  }
  7 }

nextInt()方法“返回一个伪随机、均匀分布的 int 值,介于 0(包括)和指定值(不包括)之间,取自该随机数生成器的序列。”。因为随机数是均匀分布的,所以你会更频繁地获得你的数字,因为它更频繁地包含在一个数组中。

于 2012-04-25T11:07:07.510 回答