ある悩み

  • W大学の理工系学部での話
  • 「N人の異性と出会うとしたら、三分の一の相手を値踏みした上で、それ以降、出会う人で、値踏み三分の一より良い人を選ぶと、N人の中の最高の人を選んだことになる確率が高い」らしい、と言う。その作戦で生涯の伴侶を選んでみたいという。いろんな意味で非現実的なところが、かえって現実感を漂わせている
  • さて、\frac{1}{3}という数字がなんなのか、と思う
  • 以前、遺伝的浮動\frac{1}{3}に近い値が出てきて、それは\frac{1}{e}だったことがあった
  • これも\frac{1}{e}なのか?
  • 理論はともあれ、シミュレーションしてみる
  • 垂直な線が1/e * Nの線です
# 全体を粗く
N<-100

L<-1:(N-1)
Niter<-1000
results<-rep(0,length(L))
for(j in 1:Niter){
	cands<-runif(N)
	cands<-sample(1:N)
	for(i in 1:length(L)){
	tmpMax<-max(cands[1:L[i]])
	rest<-cands[(L[i]+1):N]
	mores<-which(rest>tmpMax)
	restMax<-which(rest==max(rest))
	if(length(mores)>0){
		if(min(mores)==restMax){
		results[i]<-results[i]+1
	}
	}
	
}

}

par(mfcol=c(1,2))
plot(L,results)

abline(v=1/exp(1)*N)



# 細部を細かく
N<-100

L<-(0.3*N):(0.45*N)
Niter<-100000
results<-rep(0,length(L))
for(j in 1:Niter){
	cands<-runif(N)
	cands<-sample(1:N)
	for(i in 1:length(L)){
	tmpMax<-max(cands[1:L[i]])
	rest<-cands[(L[i]+1):N]
	mores<-which(rest>tmpMax)
	restMax<-which(rest==max(rest))
	if(length(mores)>0){
		if(min(mores)==restMax){
		results[i]<-results[i]+1
	}
	}
	
}

}

plot(L,results)

abline(v=1/exp(1)*N)