\(1.4 (a)\)

# 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 )

\(1.4 (c)\)

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

\(1.4 (d)\)

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