- 今回考えるモデル
- 個体数 一定
- 個体は富をもつ
- 富の総量 一定
- 財産はゼロまたは正の量
- 取引
- 二者間に対して取引が行われる
- 取引によって富の移動がする
- 同時に複数の取引は行われない
- 二者の選び方はランダムということにしておく
- あとは 量、方向 を決める
- モデル
- フリーマーケット
- 富の移動量は貧しい方の財産を超えない
- 取引の方向はランダム
- 結婚離婚モデル
- 盗みサギ
- 勝ち負けはランダムに決める
- 移動量は与える側のランダムな割合
N<-1000
M<-100
T<-1000
A<-runif(N)
A<-A*M/sum(A)
flea.market<-function(){
range<-min(A[select])
trade<-runif(1,min=-range,max=range)
A[select]<-A[select]+c(trade,-trade)
return(A)
}
marriage<-function(){
total<-sum(A[select])
property<-runif(1,min=0,max=total)
A[select]<-c(property,total-property)
return(A)
}
thief<-function(){
ratio<-runif(1)
trade<-A[select[1]]*ratio
A[select]<-A[select]+c(-trade,+trade)
return(A)
}
for(t in 1:T){
select<-sample(1:N,2)
A<-flea.market()
}
hist(A,breaks=N,xlab="property")
N<-1000
M<-100
T<-1000
A<-runif(N)
A<-A*M/sum(A)
flow<-c()
flea.market<-function(){
range<-min(A[select])
trade<-runif(1,min=-range,max=range)
A[select]<-A[select]+c(trade,-trade)
return(A)
}
marriage<-function(){
total<-sum(A[select])
property<-runif(1,min=0,max=total)
A[select]<-c(property,total-property)
return(A)
}
thief<-function(){
ratio<-runif(1)
trade<-A[select[1]]*ratio
A[select]<-A[select]+c(-trade,+trade)
return(A)
}
for(t in 1:T){
select<-sample(1:N,2)
B<-marriage()
flow<-c(flow,max(A-B))
A<-B
}
hist(flow,breaks=length(flow),xlab="money flow")