先日、X(旧ツイッター)にてこんな定理をつぶやいている人がいました。
なんこれということでやってみた(拙いコードごめん)
options(digits = 10)
set.seed(123)
k <- replicate(100, {
s <- 0
co <- 0
while(s < 1){
s <- s + runif(1, min = 0, max = 1)
co <- co + 1
}
co
})
mean(k)
## [1] 2.65
2.65かー。確かに回数増やしたらなりそうな予感はする。10000回やってみよう
You can also embed plots, for example:
## [1] 2.7248
おー。2.7248はさっきより近いぞ。もっと増やそう。
## [1] 2.71836
増やしすぎて計算に時間かかった。2.71836!!自然対数eに迫っている感はすごい!もうちょっと増やしたい。
## [1] 2.7185689
コードが悪いのかめっちゃ時間かかる。2.7185689…。コンピューター上のまるめ誤差とかが出ているのかもしれない。
確かに、[0,1]区間の一様分布から乱数を独立に発生させたら、和が1を超える平均の乱数の個数は自然対数になりそう。思い付きでやってみただけなので、今度また別の方法でしっかりやるかも