Simulation of pi


In [2]:
n <- 100000
x <- runif(n); y <- runif(n)
inside <- x^2 + y^2 <= 1
pi <- 4 * sum(inside) / n
pi


Out[2]:
3.14088

In [3]:
idx <- sample.int(trunc(n/(log(n))), replace = FALSE)
x <- x[idx]; y <- y[idx]; inside <- inside[idx]

plot(x, y, 
     col = ifelse(inside, "blue", "red"), cex =0.5, pch = ".",
     main = sprintf("Bootstrap approximation of pi\nusing %s random samples, pi ~ %1.5f", n, pi)
)



In [ ]: