// 2次元ランダムウォーク import java.util.Random; import java.io.*; public class RandomWalk2Da{ public static void main(String[] args) throws IOException { int MAX_PARTICLES=10000; double x[]=new double[MAX_PARTICLES]; double y[]=new double[MAX_PARTICLES]; double h=1.0; String s; PrintWriter pw = new PrintWriter(new FileWriter("2D.dat")); BufferedReader buf = new BufferedReader(new InputStreamReader(System.in)); System.out.println("Input: random seed"); s = buf.readLine(); long seed = Long.parseLong(s); System.out.println("Input: Number of particles"); s = buf.readLine(); long nran = Long.parseLong(s); System.out.println("Input: Number of steps"); s = buf.readLine(); long nstep = Long.parseLong(s); Random rnd = new Random(); rnd.setSeed(seed); for (int i = 0; i <= nran-1; i++) { x[i]=0.0; y[i]=0.0; for(int istep=0; istep < nstep; istep++){ double ran=rnd.nextDouble(); if(ran<0.25) x[i]=x[i]-h; else if(ran<0.5) x[i]=x[i]+h; else if(ran<0.75) y[i]=y[i]-h; else y[i]=y[i]+h; } System.out.println(x[i]+" "+y[i]); pw.println(x[i]+" "+y[i]); } pw.close(); } }