コマンドライン引数を取る2次元のランダムウォークを書いています。ランダムウォークが開始点を中心とする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);
}
}
あなたたちが私がそれを間違っていると思うかどうかを確認したいだけです。