私はN
というオブジェクトのリストを持っています。
実際のN
オブジェクトの間に(0、N)の間にランダムに配置されたX
ダミーオブジェクトを挿入したいと思います。一様分布の乱数セットの作成
私は次のコードを試しました。
int[] dummyIndexes = new int[X];
int randomStep = N/X * 2; // *2 because the Mean is N/X/2
Random random = new Random();
int randIdx = 0;
for (int i=0; i < X; i++)
{
randIdx += random.nextInt(randomStep);
dummyIndexes[i] = randIdx;
}
私はすべての方法ドメインN
の最後に良好な分布が届かないが、これは、大丈夫動作します。
これを行うにはどのような方法が良いですか?
もし 'randomStep'が==' N'でなければ、結果の乱数は 'N'まで均等に分配されないようです。 –
'random.nextInt(randomStep)+ 1'を実行しなければならないと思います。そうでなければ、結果がゼロなら2つ以上のダミーインデックスが得られます。 – Yoni
そしてもちろん、 'N'の値を取得したい場合は、' nextInt'に 'N + 1'を指定する必要があります。 –