11

最大範囲内でランダムな整数を生成する必要があります。パフォーマンスが重要であるため、Java の Random クラスの代わりに XORShift ジェネレーターを使用することにしました。

long seed = System.nanoTime();
seed ^= (seed << 21);
seed ^= (seed >>> 35);
seed ^= (seed << 4);

この実装(ソース)は long 整数を提供しますが、実際に必要なのは 0 から最大値までの整数です。

public int random(int max){ /*...*/}

このメソッドを実装する最も効率的な方法は何ですか?

4

2 に答える 2