Java 二维随机游走
我正在写一个二维随机游走,它接受命令行参数。它是用来估计随机行走者到达以起点为中心的2N×2N正方形的边界需要多长时间 到目前为止,我得到的是:Java 二维随机游走,java,random-walk,Java,Random Walk,我正在写一个二维随机游走,它接受命令行参数。它是用来估计随机行走者到达以起点为中心的2N×2N正方形的边界需要多长时间 到目前为止,我得到的是: public class RandomWalk { public static void main(String[] args) { int N = Integer.parseInt(args[0]); int reps = Integer.parseInt(args[1]); int
public class RandomWalk
{
public static void main(String[] args)
{
int N = Integer.parseInt(args[0]);
int reps = Integer.parseInt(args[1]);
int x = 0;
int y = 0;
double r;
int steps = 0;
while (x*x + y*y <= N*N) {
steps++;
r = Math.random();
if (r <= 0.25) x++;
else if (r <= 0.50) x--;
else if (r <= 0.75) y++;
else if (r <= 1.00) y--;
}
System.out.println(steps);
}
}
公共类随机行走
{
公共静态void main(字符串[]args)
{
int N=Integer.parseInt(args[0]);
int reps=Integer.parseInt(args[1]);
int x=0;
int y=0;
双r;
int步数=0;
而(x*x+y*y你的程序只在随机游动到达树梢时终止,而不是区域的边界
while (x*x + y*y <= N*N) {
while(x*x+y*y90*90+90*90=16200>10000
切换到:
while (x > -N && x < N && y > -N && y < N) {
while(x>-N&&x-N&&y
这会更好。而且您的reps
变量使用得比较新。除了设置它的值之外,甚至一次也没有。这应该是什么目的?您的程序只有在随机游动到达树梢时才会终止。而不是区域边界
while (x*x + y*y <= N*N) {
while(x*x+y*y90*90+90*90=16200>10000
切换到:
while (x > -N && x < N && y > -N && y < N) {
while(x>-N&&x-N&&y
这会更好。而且你的reps
变量使用得比较新。除了设置它的值之外,甚至一次也没有。这应该是什么目的?你的边界条件,x*x+y*y你的边界条件,x*x+y*y你有问题吗?这可能更适合。是的。你可能是对的。不知道我是否有问题避免任何问题,因为我在这方面的经验还不够丰富。只是想从可能知道的人那里得到一个快速的答案。我被要求打印N=1000和reps=1000,我得到1528331,我猜步行者必须采取的步骤。第二个命令行参数应该代表什么?@Eric number of Simulator离子运行?你有问题吗?这可能更适合。是的,你可能是对的。不知道我是否有任何问题,因为我在这方面没有足够的经验知道。只是想从可能知道的人那里得到一个快速的答案。我被要求打印N=1000,重复次数=1000,我得到1528331,我猜这一步第二个命令行参数应该代表什么?@Eric模拟运行的次数?+1个好答案-回答你的问题,我认为他应该取平均重复次数-因此我认为他缺少了另一个循环。+1个好答案-回答你的问题,我认为他应该取平均值重复次数的平均值——所以我认为他错过了另一个循环。