本日(2019/09/08) の日本テレビ,世界の果てまで行ってQ で,100m の高さから 10 個くらいのマシュマロを一度に投げて,下で待ち受ける8人ほどが口に入れることができるだろうかという実験をやっていた。結果は失敗だったけど,どんな条件だと成功する確率がどれくらいになるのかシミュレーションしてみた。
library(MASS)
# 9 人を 40 センチ間隔の格子点に配置(単位はセンチメートル)
x = c(-40, -40, -40, 0, 0, 0, 40, 40, 40)
y = c(-40, 0, 40, -40, 0, 40, -40, 0, 40)
person = length(x)
sigma = 4000 # 二次元正規分布の分散
marshmallow = 10 # 一度に投げるマシュマロの数
trial = 1000 # 実験回数
result = integer(trial) # マシュマロが何人の口に入ったかの記録
for (loop in 1:trial) {
# 二次元正規乱数の発生
d = mvrnorm(n=marshmallow, mu=c(0, 0), Sigma=matrix(c(sigma, 0, 0, sigma), 2), empirical=TRUE)
# plot(d, cex = 0.5)
# points(x, y, pch=19, col=2, cex = 0.5)
success = 0 # 何人の口に入ったか
for (i in 1:marshmallow) { # それぞれのマシュマロの着地点について
for (j in 1:person) { # 各人の口から半径 5 センチ以内なら口に入るだろうと判定
if ((d[i, 1] - x[j])^2 + (d[i, 2] - y[j])^2 < 5^2) {
success = success + 1
}
}
}
result[loop] = success # 結果の記録
}
table(result) # 結果集計
print(mean(result)) # 実験 1 回あたりの,マシュマロが口に入る回数
マシュマロを10個投げる。下で 9 人が待ち受ける。マシュマロの着地点が,待ち受ける人口の半径5センチ以内なら,口に入れることができるとの条件で計算してみた。
ちなみに,マシュマロの着地点と 9 人の位置関係は,下図のような感じ。ここでは,マシュマロを 100 個投げたときの状況を示す。白抜きの丸がマシュマロ。赤丸が待ち受けている人。これだと,けっこう入りそうな気がする。
結果は,ほぼ 20% の成功確率。
マシュマロの数を倍の 20 個にすると当然(??)倍くらい(40%)の成功確率となる。
判定条件を各人の口から 3 センチ以内とすると,成功確率は 6% ぐらいになる。
まあ,大まかでもいいけどシミュレーションしておかないと,「成功しました!!」とはなかなか行かないものだということだ。