勝ち抜け

  • ある一定の確率で勝ち抜けをする状況は原子核崩壊と同じ様子であって、勝てずにいつまでも勝ち抜けできない人の数は指数関数的に減って行く
  • たとえば、イベントでのじゃんけん大会で、壇上の人とジャンケンをして、勝ったら抜けて行く(たいていは、負けたら抜けて行くのだが)としよう
  • 勝つ確率は\frac{1}{3}とすると
n <- 0:10
p <- 1/3
makenokori <- (1-p)^n
plot(n,makenokori)

  • このとき、各勝負での勝ち確率はp=\frac{1}{3}と一定である
  • さて、こちらにあるように、「勝ち確率(合格率)」が漸減するときというのはどういう状況なのだろうか?
  • 勝ち確率が参加者全員で毎回等しい場合には、上述の通り、回数を繰り返すごとに「勝ちぬけるヒト」の数が指数関数的に減って行くが、「勝ちぬけるヒト」の「勝つ確率」は一定だしみな等しいと設定してあった
  • ここで「勝ち抜け」をしていて、残ったヒトの「勝ち確率」がだんだん小さくなっていくときには、どうも、「勝たなかったヒト」のそもそもの「勝ち確率」が低めであることが原因であるように思われる
  • 勝ち確率の確率密度分布をf(p)と置いてみよう(みんなが同じ勝ち確率、というのは、f(p=p_0)=1,f(p\ne p_0)=0というようなデルタ関数になっている場合のことだったわけである)
  • 最初の勝負で勝つヒトの割合は\int_0^1 p \times f(p) dpである
  • 負けてしまって、次回に残る人はf^1(p) = (1-p) \times f(p) に比例している。pについて全部併せると1になるように補正すればf^1(p) =\frac{(1-p)\times f(p)}{\int_0^1 (1-p)\times f(p) dp}となる
  • 2回目の勝負をすると、その勝率は\int_0^1 p \times f^1(p) dp = \frac{\int_0^1 p(1-p)f(p)dp}{\int_0^1(1-p)\times f(p) dp}
  • 2回目もさらに負けるヒトはf^2(p)=(1-p)^2 \times f(p)の割合でいて、全体を併せて1になるように補正し直せばf^2(p)=\frac{(1-p)^2\times f(p)}{\int_0^1 (1-p)^2\times f(p) dp}
  • このヒトたちの勝率は\int_0^1 p f^2(p)dp=\frac{\int_0^1 p(1-p)^2\times f(p)}{\int_0^1 (1-p)^2 f(p) dp}
  • 結局、k回目の勝率は\frac{\int p(1-p)^{k-1} f(p)dp}{\int_0^1 (1-p)^{k-1} f(p) dp}
  • 簡単な例としてf(p) = \frac{1}{n+1} p^nとする

# 勝率p確率密度関数f(p) = (n+1)p^nと表される場合
# 勝ち抜けでk回目の勝負に残っている人が勝つ確率
my.success.rate <- function(n,k){
	N <- n+1
	bunshi <- 0
	bunbo <- 0
	for(i in 0:(k-1)){
		bunshi <- bunshi + choose(k-1,i) * (-1)^(i)/(N+i+1)
		bunbo <- bunbo + choose(k-1,i) * (-1)^(i)/(N+i)
	}
	bunshi/bunbo
}
# f(p)=1/(n+1)p^1のnを振る
ns <- 0:4
# k回目の勝負
ks <- 1:10

X <- matrix(0,length(ns),length(ks))
for(i in 1:length(ns)){
	for(j in 1:length(ks)){
		X[i,j] <- my.success.rate(ns[i],ks[j])
	}
}
matplot(t(X),type="l")