나는 N
개체 목록을 가지고 있습니다.
실제 N
개의 개체 사이에 (0, N) 사이에 임의로 배치 된 X
더미 개체를 삽입하고 싶습니다.균일하게 분포 된 난수 집합 만들기
그래서 다음 코드를 시도했습니다. 나는 모든 방법 도메인 N
의 말에 좋은 배급을받지 못했습니다 있지만
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;
}
이것은 확실히 작동합니다.
이 작업을 수행하는 더 좋은 방법은 무엇입니까?
이 randomStep'가 ==되지 않은'하면'N' 그 결과 임의의 숫자가 균일하게 N''에 모든 방법을 분산되지 않는다는 것을 나에게 보인다. –
'random.nextInt (randomStep) + 1'을해야한다고 생각합니다. 그렇지 않으면 결과가 0이면 두 개 이상의 더미 인덱스가 실제로 같은 인덱스를 갖게됩니다. – Yoni
물론 'N'값을 얻으려면 nextInt에 'N + 1'을 지정해야합니다. –