0

一意の数値を生成するランダム整数ジェネレーターを作成しようとしています。

誰もそれがどのように可能か考えていますか?

4

4 に答える 4

4

可能な数値の範囲が十分に小さい場合、これは非常に簡単で便利です。

final List<Integer> sack = new ArrayList<>(RANGE);
for (int i = 0; i < RANGE; i++) sack.add(i);
Collections.shuffle(sack);

次に、アイテムsackを順番に取り出します。

于 2013-05-13T09:54:52.850 に答える
1

探しているものがグローバルに一意の識別子である場合は、世界中で一度だけ作成される ID を生成する Java の UUID クラスを検討することをお勧めします。

import java.util.UUID;

public class Test {
    public static void main(String[] args) {

        System.out.println(UUID.randomUUID());
    }
}

ただし、整数ではなく英数字です

于 2013-05-13T09:47:43.293 に答える
1

1 つの単純なアルゴリズムは次のようになります。

  1. を作成するHashSet<Integer> set
  2. 乱数を生成する
  3. に存在しない場合set=> その乱数を使用して格納しますset
  4. に存在する場合はset、手順 2 に戻ります

一意性制約のため、数字は完全にランダムではないことに注意してください。

于 2013-05-13T09:44:00.970 に答える