以前,ポケモンGO! でグレートスローを三連続するまでに何回投げればよいのか?というのを書いたが,最近,「グレートスローを五連続」というタスクが出てきた。
これは実質不可能なタスクだろう。
シミュレーションしてみた。
この場合の if 文の ( ) は必要。
function quintuple(p=0.3)
count = 0
while true
if (count += 1; rand(1)[1] < p)
if (count += 1; rand(1)[1] < p)
if (count += 1; rand(1)[1] < p)
if (count += 1; rand(1)[1] < p)
if (count += 1; rand(1)[1] < p)
return count
end
end
end
end
end
end
end
using Plots
x = Int[]
for i in 1:100000
count = quintuple(0.3)
append!(x, count)
end
mean(x)
median(x)
histogram(x)
グレートスローを投る確率 p が 0.3 のときでも,平均で600回近く,メディアンでも400回ほど。
確率が 0.1 なんてときには,平均で10万回投げないと達成できない。
以下の図は p = 0.3 のときの達成までの回数のヒストグラム