貧しいほうの資産を超えない取引モデル。
N<- 12 Mstart<- 100 M<- rep(Mstart,N) ylim<- c(0,Mstart*N) library(gtools) trials<- 1000 Mmove<- matrix(0,trials+1,N) Mmove[1,]<- M for(t in 1:trials){ trade<- matrix(sample(N),nc=2) for(i in 1:nrow(trade)){ trademoney<- runif(1)*min(M[trade[i,]]) M[trade[i,1]]<- M[trade[i,1]]-trademoney M[trade[i,2]]<- M[trade[i,2]]+trademoney } Mmove[t+1,]<- M } matplot(Mmove,type="l",lwd=2,ylim=ylim, xlab="No.Trade",ylab="Money") title("Random Trade Model 1") hist(tail(Mmove,1),breaks=N,col=5)
損をするほうの資産を超えないモデル(盗人・詐欺モデル)。
N<- 12 Mstart<- 100 M<- rep(Mstart,N) ylim<- c(0,Mstart*N) library(gtools) trials<- 1000 Mmove<- matrix(0,trials+1,N) Mmove[1,]<- M for(t in 1:trials){ trade<- matrix(sample(N),nc=2) for(i in 1:nrow(trade)){ lost<- sample(1:2,size=1) trademoney<- runif(1)*M[trade[i,lost]] M[trade[i,lost]] <- M[trade[i,lost]]-trademoney M[trade[i,3-lost]]<- M[trade[i,3-lost]]+trademoney } Mmove[t+1,]<- M } matplot(Mmove,type="l",lwd=2,ylim=ylim, xlab="No.Trade",ylab="Money") title("Random Trade Model 2") hist(tail(Mmove,1),breaks=N,col=5)
取引するふたりの資産を足して分割するモデル。
N<- 12 Mstart<- 100 M<- rep(Mstart,N) ylim<- c(0,Mstart*N) library(gtools) trials<- 1000 Mmove<- matrix(0,trials+1,N) Mmove[1,]<- M for(t in 1:trials){ trade<- matrix(sample(N),nc=2) for(i in 1:nrow(trade)){ Money<- sum(M[trade[i,]]) trademoney<- sample(Money,size=1) M[trade[i,1]]<- trademoney M[trade[i,2]]<- Money-trademoney } Mmove[t+1,]<- M } matplot(Mmove,type="l",ylim=ylim, xlab="No.Trade",ylab="Money") title("Random Trade Model 3") hist(tail(Mmove,1),breaks=N,col=5)
モデル1に税を徴収して分配するモデル。
Mstart<- 100 M<- rep(Mstart,N) ylim<- c(0,Mstart*N) library(gtools) trials<- 1000 Mmove<- matrix(0,trials+1,N) Mmove[1,]<- M for(t in 1:trials){ trade<- matrix(sample(N),nc=2) for(i in 1:nrow(trade)){ trademoney<- runif(1)*min(M[trade[i,]]) M[trade[i,1]]<- M[trade[i,1]]-trademoney M[trade[i,2]]<- M[trade[i,2]]+trademoney } Tax<- M*tax M<- M-Tax M<- M+sum(Tax)/N Mmove[t+1,]<- M Mmove[t+1,]<- M } matplot(Mmove,type="l",ylim=ylim, xlab="No.Trade",ylab="Money") title("Random Trade Model 4") hist(tail(Mmove,1),breaks=N,col=5)