となり、円周率(の逆数)を得ることができます。 ※a=l と記述されるのが一般ですが、見難いため a にしています。 今回は、この問題をRで実装し、シミュレートして確認します。 実装 Rコード buffon.needle = function(n = 100, sec = 0.1, l = 1.0, d = 1.0) { x <- y <- xd <- yd <- phi <- ctr <- numeric(0) sum <- 0; PI <- rep(NA, n) layout(matrix(c(1, 2), 2)) for (j in 1:n) { # Draw parallel lines xlim <- c(-0.5 * l, 1.5 * l); ylim <- c(0, 2 * d) plot(1, xlim = xlim, ylim = ylim, type = 'n', xl