我在各处搜索过,似乎无法找到解决问题的方法。我有一个数组,其中包含我的随机行走落在指定位置的次数。现在我需要找到这个数组的总和,但由于某种原因,总和总是给出1000 :(
int[] hx;
hx = new int[1000];
int hx_sum = 0;
for (int i = -500; i < 500; i++) {
hx[i+500] = totals.get(i);
}
for(int w = 0; w < 1000; w++){
hx_sum += hx[w];
}
System.out.print(hx_sum);
}
我的hx_sum的结果总是= 1000。
答案 0 :(得分:4)
您执行1000步(NBR_WALK),并在每个步骤中增加哈希映射中的一个点。地图在之前全部为0初始化。
快速提问:1000个增量的总和是多少?
你看到错误吗?这不是一个真正的错误,只是在数学上确定不可能有不同的结果。
如果你没有看到它,我建议你拿一个骰子,扔掉它10次,每次增加数字元素对应的数字(你可以在纸上绘制)。在开始之前使用全0初始化数组。 然后计算数组的总和。它只能是10。
这可能看起来像:
Dice 1s 2s 3s 4s 5s 6s
1 x
5 x x
3 x x x
1 xx x x
现在计算最后一行中的x
。 4,因为你掷骰子4次,每次你加1 x
。此外,在每一行中,前一行中只有一个x
。因此,在1000轮之后你将获得1000 x。