我正在研究的小方法应该模拟从0开始的位置,然后随机向后退步或前进,直到达到位置3或位置负3,同时记录到达最高位置,达到负3。
我在这里写的方法不起作用,因为它没有在-3或3处正确停止。
public void randomWalk(){
Random ran = new Random();
int position = 0;
int max = 0;
int steps = 0;
while(position != 3 || position != -3){
int r = ran.nextInt(2);
if(position > max){
max = position;
} else if(r == 0){
position += 1;
}else{
position -= 1 ;
}
System.out.println("position = " + position);
}
System.out.println("max position = " + max);
}
我希望这是一个可接受的问题格式。
任何帮助将不胜感激,谢谢
答案 0 :(得分:0)
尝试
Random ran = new Random();
int position = 0;
while(Math.abs (position) != 3){
int r = ran.nextInt(2);
if(r == 0){
position += 1;
}else{
position -= 1 ;
}
System.out.println("position = " + position);
}
System.out.println("max position = " + position);
根据我上面的评论
为什么需要max变量,这与循环结束时的位置值相同。