2

私は Android アプリを作成しており、乱数を生成したいと考えています。

しかし、Java の RandomGenerator は疑似乱数しか提供しません。数字は繰り返され、すべての数字がカバーされているわけではありません。

繰り返しのない数字を与え、すべての数字をカバーするものが欲しい. それ、どうやったら出来るの?

4

2 に答える 2

7

必要なすべてのランダムな値をリストに入れて、シャッフルすることができます。

List<Integer> numbers = ...
Collections.shuffle(numbers);

これにより、ランダムな順序で一意の番号が得られます。

于 2012-07-06T12:26:57.353 に答える
0

ループしたい数値をデータ構造に入力してから、構造内の要素の順序をランダム化し、それらを 1 つずつ引き出すことができます。または、ランダムにインデックスを選択し、それらのインデックスで要素を取得することもできます。どちらを行うにしても (特定のデータ構造に対してより効率的なものを選択します)、この要素を取得するときに必ず削除してください。すべての要素を受け取り、何も残らないようになるまで、データ構造はどんどん小さくなっていきます。これにより、可能な数字のプールから削除されるため、同じ数字を 2 回ヒットすることはありません。

于 2012-07-06T12:24:30.910 に答える