# install.packages("plotrix")
require(plotrix)## Loading required package: plotrix
# install.packages("grid")
require(grid)## Loading required package: grid
plot(c(-1, 1), c(-1,1), type = "n", asp=1)
rect( -1, -1, 1, 1)
draw.circle( 0, 0, 1 )First, let generate 10,000 X and 10,000 Y, as follow:
n <- 10000
a <- -1
b <- 1
X <- runif(n, a, b)
Y <- runif(n, a, b)
D <- X^2 + Y^2
dat <- as.data.frame(cbind(X,Y,D))
colnames(dat) <- c("X","Y","D")
dat$DI <- ifelse(dat$D<1,1,0)
head(dat)## X Y D DI
## 1 -0.91435291 -0.2599291 0.9036044 1
## 2 -0.63951470 0.2472350 0.4701042 1
## 3 -0.88827246 -0.2736626 0.8639192 1
## 4 0.07756034 -0.3490695 0.1278651 1
## 5 -0.59440951 -0.9069358 1.1758552 0
## 6 -0.54520416 -0.2860260 0.3790585 1
table(dat$DI)##
## 0 1
## 2094 7906
mean(dat$DI)## [1] 0.7906
sd(dat$DI)## [1] 0.4069007
mat_dat <- matrix(,nrow=1000,ncol=2)
for (i in 1:1000){
X <- runif(n, a, b)
Y <- runif(n, a, b)
D <- ifelse(X^2+Y^2<1,1,0)
mat_dat[i,1] <- mean(D)
mat_dat[i,2] <- sd(D)
}
mean(mat_dat[,1])## [1] 0.7854995
mean(mat_dat[,2])## [1] 0.4104676