0

我只是盲目地看到解决方案吗?

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++;
}  

任何帮助表示赞赏!谢谢!

4

2 回答 2

2

如果所有 sampleWeights 都为零,则 sampleSum 将为零并且 population.length=0。所以当你做人口[z] 会有一个 ArrayIndexOutOfBoundsException。

于 2009-06-10T20:26:14.730 回答
1

我假设你有 N 个整数,N = # Samples x # weights/Sample(i)?

如果是这种情况,您从哪里获得 sampleWeights 数组(或给定整数自动装箱的列表)?

使用一些 System.out.println 再次运行您的代码以收集调试信息,您将很快发现问题所在。

于 2009-06-10T20:25:17.943 回答