Java 二维随机游走

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

我正在写一个二维随机游走,它接受命令行参数。它是用来估计随机行走者到达以起点为中心的2N×2N正方形的边界需要多长时间

到目前为止,我得到的是:

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个好答案-回答你的问题,我认为他应该取平均值重复次数的平均值——所以我认为他错过了另一个循环。