rwalk <- function(n=200){#n=200000 でも試してみる set.seed(1); x=0; y=0; col=1 #x=0; y=0 で初期値を原点に設定 plot(1,1,,xlim=c(-400,100),ylim=c(-400,300),type="n",xlab="x",ylab="y") for(i in 1:n){ ran=which(rmultinom(1,1,prob=rep(0.25,4))==1)#カテゴリカル分布の乱数 if(ran==1){ #右に進む(x 軸の正の方向に1 進む). y 軸の値はそのまま x[i+1]="?" y[i+1]="?" } else if(ran==2){#左に進む(x 軸の負の方向に1 進む). y 軸の値はそのまま x[i+1]=x[i]-1 y[i+1]=y[i] } else if(ran==3){#上に進む(y 軸の正の方向に1 進む). x 軸の値はそのまま x[i+1]="?" y[i+1]="?" } else{ #下に進む(y 軸の負の方向に1 進む).x 軸の値はそのまま x[i+1]=x[i] y[i+1]=y[i]-1 } if(i%%20000==0) col=col+1 #線の色を変える segments(x[i],y[i],x[i+1],y[i+1],col=col)#線分を引く(酔歩の軌跡) } }