0

私は配列を持っています

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

要素の合計を考慮して、ランダムに1つの位置を見つける必要があります。たとえば、5-が6回で、1-が1つしかない場合、5は6回ランダムである必要があります。

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

別の答えが言ったように、範囲 0 : length-1 の int が必要です。

以下を使用することをお勧めします。

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()メソッド "この乱数ジェネレーターのシーケンスから引き出された、0 (0 を含む) と指定された値 (0 を含まない) の間の均一に分散された int 値の疑似乱数を返します。". ランダムは一様に分布しているため、配列に含まれる頻度が高いほど、数値を取得する頻度が高くなります。

于 2012-04-25T11:07:07.510 に答える