Вопрос

Неужели я просто слеп, чтобы увидеть решение?

sampleSum = 0;
for(int x : sampleWeights)
   sampleSum += x;

population = new int[sampleSum];
int z = 0;

for(int i = 0; i < nsamples; i++)
for(int j = 0; j < sampleWeights[i]; j++) 
{
    population[z] = i;
    z++;
}  

Любая помощь приветствуется!Спасибо!

Это было полезно?

Решение

Если все значения sampleWeights равны нулю, sampleSum будет равен нулю, а Population.length=0.Поэтому, когда вы выполняете Population[z], возникнет исключение ArrayIndexOutOfBoundsException.

Другие советы

Я предполагаю, что у вас есть N целых чисел, N = # Samples x # Weights/Sample(i)?

Если это так, то откуда вы взяли массив sampleWeights (или список с автобоксом целых чисел)?

Запустите свой код еще раз с помощью System.out.println, чтобы собрать отладочную информацию, и вы быстро увидите, что не так.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top