自回避随机游走 - 编译的程序不会执行
我正在尝试使用Intellij和以下代码运行一个自我避免随机步行程序。但是,该程序在调用后成功地编译了 - 终端使用空白(未重置)进入下一行,而什么也没有打印出来。我也无法调用任何新程序或键入终端。
public class SelfAvoidingRandomWalks {
public static void main(String[] args) {
int n = Integer.parseInt(args[0]);
int trials = Integer.parseInt(args[1]);
int deadEnds = 0;
for (int t = 0; t < trials; t++) {
boolean[][] a = new boolean[n][n];
int x = n / 2, y = n / 2;
while (x > 0 && x < (n - 1) && y > 0 && y < (n - 1)) ;
{
a[x][y] = true;
if (a[x - 1][y] && a[x + 1][y] && a[x][y - 1] && a[x][y + 1]) {
deadEnds++;
break;
}
double r = Math.random();
if (r < 0.25) {
if (!a[x + 1][y]) x++;
}
else if (r < 0.50) {
if (!a[x - 1][y]) x--;
}
else if (r < 0.75) {
if (!a[x][y + 1]) y++;
}
else if (r < 1.00) {
if (!a[x][y - 1]) y--;
}
}
}
System.out.println(100 * (deadEnds / trials) + "% dead ends");
System.out.println(deadEnds);
}
}
I'm trying to run a Self Avoiding Random Walk program using IntelliJ with the code below. The program compiles successfully however, after calling it - the terminal goes to the next line with a blank (doesn't reset) and nothing is printed out. I'm not able to call any new programs or type in the terminal as well.
public class SelfAvoidingRandomWalks {
public static void main(String[] args) {
int n = Integer.parseInt(args[0]);
int trials = Integer.parseInt(args[1]);
int deadEnds = 0;
for (int t = 0; t < trials; t++) {
boolean[][] a = new boolean[n][n];
int x = n / 2, y = n / 2;
while (x > 0 && x < (n - 1) && y > 0 && y < (n - 1)) ;
{
a[x][y] = true;
if (a[x - 1][y] && a[x + 1][y] && a[x][y - 1] && a[x][y + 1]) {
deadEnds++;
break;
}
double r = Math.random();
if (r < 0.25) {
if (!a[x + 1][y]) x++;
}
else if (r < 0.50) {
if (!a[x - 1][y]) x--;
}
else if (r < 0.75) {
if (!a[x][y + 1]) y++;
}
else if (r < 1.00) {
if (!a[x][y - 1]) y--;
}
}
}
System.out.println(100 * (deadEnds / trials) + "% dead ends");
System.out.println(deadEnds);
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论