我的随机行走Java程序是';它不能正常工作。有办法解决吗?
所以,我一直在写这个程序,叫做随机行走桥程序。因此,我们必须进行50次试验,得出平均步骤数和最大步骤数。我已经做了这部分,但我坚持的部分是这个,在下面的图片。 [1] : 到目前为止,这是我的代码,我的代码只有中间的点,不移动,当我要求长度时,EX:3。这座桥有6条破折号,而不是3条。我的成绩- |---*---| |---*---| |---*---| |---*---| |---*---| |---*---| 主类-我的随机行走Java程序是';它不能正常工作。有办法解决吗?,java,Java,所以,我一直在写这个程序,叫做随机行走桥程序。因此,我们必须进行50次试验,得出平均步骤数和最大步骤数。我已经做了这部分,但我坚持的部分是这个,在下面的图片。 [1] : 到目前为止,这是我的代码,我的代码只有中间的点,不移动,当我要求长度时,EX:3。这座桥有6条破折号,而不是3条。我的成绩- |---*---| |---*---| |---*---| |---*---| |---*---| |---*---| 主类- public class BridgeMain { public
public class BridgeMain {
public static void main(String[] args) {
// TODO Auto-generated method stub
KeyboardReader reader = new KeyboardReader();
BridgeSecond object = new BridgeSecond();
System.out.println("Length:");
int length = reader.readInt();
object.Output(length);
object.bridge(length);
}
}
二等舱
public void bridge(int sizeOfbridge) {
Random rand = new Random();
int avg=0; int max=0; int min=0;
int position = 0;
for (int i=0;i<50;i++) {
position=0; int count=0;
while (position!=4 && position!=-4) {
int number= rand.nextInt((1) + 1) + 0;
if (number==1) {
position++;
}
if (number==0) {
position--;
}
count++;
}
avg=avg+count;
if (count>max) {
max=count;
}
System.out.print("|");
for (count=1;count<=sizeOfbridge;count++) {
System.out.print("-");
}
System.out.print("*");
for (count=1;count<=sizeOfbridge;count++) {
System.out.print("-");
}
System.out.println("|");
}
}
}
public void桥(intsizeofbridge){
Random rand=新的Random();
平均整数=0;最大整数=0;最小整数=0;
int位置=0;
对于(int i=0;imax){
最大值=计数;
}
系统输出打印(“|”);
对于(count=1;count请将ASCII内容的图片显示为文本,而不是文本图片的链接。请提供一个示例来说明您的问题。您的代码中打印破折号和星号等的部分将打印50行与随机行走无关的相同行。这是因为该代码仅依赖于n变量sizeOfbridge
,在循环的50次迭代过程中,该变量从未改变。因此,生成您在图像中显示的内容的代码在哪里?@Steve,该代码位于第二类。无论您做什么,它始终位于底部,而在此循环之后,位置只有两个可能的值:4和-4。您可以uld将整个循环简化为一个简单的position=4*(rand.nextInt(1)==0?-1:1)
。当然,在每次循环迭代中都会增加count
。但以后不会对该值做任何操作。(count=1;count请将ASCII内容的图片显示为文本,而不是文本图片的链接。请提供一个示例来说明您的问题。您的代码中打印破折号和星号等的部分将打印50行与随机行走无关的相同行。这是因为该代码仅依赖于n变量sizeOfbridge
,在循环的50次迭代过程中,该变量从未改变。因此,生成您在图像中显示的内容的代码在哪里?@Steve,该代码位于第二类。无论您做什么,它始终位于底部,而在此循环之后,位置只有两个可能的值:4和-4。您可以uld将整个循环简化为一个简单的position=4*(rand.nextInt(1)==0?-1:1)
。当然,在每次循环迭代中都会增加count
。但以后不会对该值做任何操作。for(count=1;count)