我只是盲目地看到解决方案?
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++;
}
任何帮助表示赞赏!谢谢!
答案 0 :(得分:2)
如果所有sampleWeights都为零,则sampleSum将为零且population.length = 0。所以当你做人口[z]时会有一个ArrayIndexOutOfBoundsException。
答案 1 :(得分:1)
我假设你有N个整数,N =#Samples x#weights / Sample(i)?
如果是这种情况,你从哪里得到sampleWeights数组(或者给出了整数自动装箱的列表)?
使用一些System.out.println再次运行代码以收集调试信息,您将很快看到错误。