我有一个数组
(1,2,2,2,3,3,4,5,5,5,5,5,5)
考虑到元素的总和,我必须随机找到一个位置。例如,如果 5 - 是六次,而 1 - 只有一,那么 5 必须六次经常是随机的
您需要获取数组的随机索引:
int randomIndex = Random.nextInt(array.length);
int randomValue = array[randomIndex]
像这样的东西?
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];
就像另一个答案所说的那样,您需要一个 int 范围为 0:length-1。
我建议使用:
Random r = new Random();
int index = r.nextInt(array.length);
int randomValue = array[index];
在这里你可以看到 Math.random() 和 Random 对象的 nextInt() 方法之间的区别:
尝试这个:
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(包括)和指定值(不包括)之间,取自该随机数生成器的序列。”。因为随机数是均匀分布的,所以你会更频繁地获得你的数字,因为它更频繁地包含在一个数组中。