# モンテカルロ法 # 判別関数 f <- function(x, y) { if (x ^ 2 + y ^ 2 < 1) return(1) return(0) } # 点の個数 n <- 1000 # 図形を囲む長方形の座標 x1 <- -1 x2 <- 1 y1 <- -1 y2 <- 1 # n個の一様乱数 x <- runif(n, x1, x2) y <- runif(n, y1, y2) m <- 0 for (i in 1 : n) { # 図形内部の点を判別関数でカウント m <- m + f(x[i], y[i]) } # 面積 s <- m / n * (x2 - x1) * (y2 - y1) print(s)