編寫一個名爲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準確地說,我的問題在那裏,它應該與+符號很好,但仍然輸出是錯誤的。我不知道他們如何檢查輸出,因爲它處理隨機數。 –