私は配列を持っています
(1,2,2,2,3,3,4,5,5,5,5,5,5)
要素の合計を考慮して、ランダムに1つの位置を見つける必要があります。たとえば、5-が6回で、1-が1つしかない場合、5は6回ランダムである必要があります。
配列のランダムなインデックスを取得する必要があります。
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];
別の答えが言ったように、範囲 0 : length-1 の int が必要です。
以下を使用することをお勧めします。
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()
メソッド "この乱数ジェネレーターのシーケンスから引き出された、0 (0 を含む) と指定された値 (0 を含まない) の間の均一に分散された int 値の疑似乱数を返します。". ランダムは一様に分布しているため、配列に含まれる頻度が高いほど、数値を取得する頻度が高くなります。