编写一个名为randomWalk的方法,执行随机的一维步行,报告每个到达的位置和行走过程中达到的最大位置。随机游走应该从位置0开始。在每一步中,您应该增加或减少位置1(等概率)。当3或-3被击中时,步行停止。输出应该是这样的:错误的输出 - 为什么?
position = 0
position = 1
position = 0
position = -1
position = -2
position = -1
position = -2
position = -3
max position = 1
我的代码:
public static void randomWalk() {
Random rand = new Random();
int position = 0;
int max = 0;
System.out.println("position = " + position);
while (position != 3 && position != -3) {
int randomNumber = rand.nextInt(2) * 2 - 1;
position = position - randomNumber; //why the minus?
max = Math.max(max , position);
System.out.println("position = " + position);
}
System.out.println("max position = " + max);
}
我最初有加号而不是减号,和3出4个输出是不正确的(图片附后)。这与输出控制台有关吗?还是我的代码在某处错了?
A +在这方面的表现并不相同......当您使用随机数字时,他们对特定输出的期待并不清楚。但是你没有向我们展示那个输出的* end * - 也许它只是检查最大位置? –
虽然我认为你的问题是相当完整的,我不明白代码有什么问题?它通过判断输出减少1或者增加1,所以最近有什么错误? – SomeJavaGuy
@KevinEsche准确地说,我的问题在那里,它应该与+符号很好,但仍然输出是错误的。我不知道他们如何检查输出,因为它处理随机数。 –