counts[d1 + d2] += 1
到底做了什么?这是我的代码:
//call simulate(10)
public static void simulate(int rolls) {
Random rand = new Random();
int[] counts = new int[13];
for (int k = 0; k < rolls; k++) {
int d1 = rand.nextInt(6) + 1;
int d2 = rand.nextInt(6) + 1;
System.out.println(d1+"+"+d2+"+"+"="+(d1+d2));
counts[d1 + d2] += 1;
}
for (int k = 2; k <= 12; k++) {
System.out.println(k + "'s=\t" + counts[k] + "\t" + 100.0 * counts[k]/rolls);
}
}
答案 0 :(得分:2)
d1
和d2
是1-6个范围内的2个随机数。当它们组合时,它们可以给出的最大结果是12,使它们成为计数[]中的随机索引。
现在是下一部分:
counts[d1 + d2] += 1;
此处+=
是二元运算符。这意味着你需要2个操作数来执行任何操作。
它做的是
计算[d1 + d2] + = 1;
获取解释为
计数[d1 + d2] =计数[d1 + d2] + 1;
你在这里做的是用 索引 [d1 + d2]
重新初始化数组中的变量并向其添加1。