1

を使用して範囲から乱数を作成できます

Random rand = new Random();
int num = rand.nextInt(10);
System.out.println("Generated Random Number between 0 to 10 is : " + num);

しかし、生成された次の乱数minusが既に生成された範囲の一部である必要がある場合、上記のステートメントをループに保持するだけで十分でしょうか?

また、範囲からすべての数を使い果たしたら、停止する必要があります。

たとえば、

コードは [0-10] の間の乱数を与えます。

1st - 4- 範囲 {[0-10]}

2nd - 9- 範囲 {[0-10]-4}

3rd - 8- 範囲 {[0-10]-4,9}

..

..

10th - 10- 範囲 {[0-10]-[0-9]}

この関数は [Range]{これが私の要件} または (Range) から出力されますか? または、より良い代替ソリューションはありますか?

4

2 に答える 2

3

最も簡単な方法は、おそらく次のとおりです。

何かのようなもの:

List<Integer> numbers = Arrays.asList(0, 1, 2, 3, 4, 5, 6, 7, 8, 10);
Collections.shuffle(numbers);
System.out.println(numbers);

デフォルトが適切でない場合は、シャッフル操作用の乱数発生器を提供することもできます。

于 2012-12-01T07:36:30.863 に答える
0

私はこれが可能だとは思わない。リストで既に生成した数字を覚えておいて、リストにないものが見つかるまで、それを使用してさらに乱数を生成してください。

于 2012-12-01T07:41:05.260 に答える