Informe 1

estimate_pi <- function(n) {
  x <- runif(n)
  y <- runif(n)
  
  count_inside <- 0
  
  for (i in 1:n) {
    distance_squared <- (x[i] - 0.5)^2 + (y[i] - 0.5)^2
    
    if (distance_squared <= 0.25) {
      count_inside <- count_inside + 1
    }
  }
  
  pi_estimate_4 <- count_inside / n
  pi_estimate <- pi_estimate_4 * 4
  
  #número de puntos dentro del círculo y la estimación de pi
  return(list(count_inside = count_inside, estimated_pi = pi_estimate))
}

n_points <- 1000
results <- estimate_pi(n_points)


cat("Número de puntos dentro del círculo:", results$count_inside, "\n")
## Número de puntos dentro del círculo: 785
cat("Estimación de pi:", results$estimated_pi, "\n")
## Estimación de pi: 3.14
estimate_pi2 <- function(n) {
  x <- runif(n)
  y <- runif(n)
  
  count_inside2 <- 0
  
  for (i in 1:n) {
    distance_squared2 <- (x[i] - 0.5)^2 + (y[i] - 0.5)^2
    
    if (distance_squared2 <= 0.25) {
      count_inside2 <- count_inside2 + 1
    }
  }
  
  pi_estimate_4_2 <- count_inside2 / n
  pi_estimate2 <- pi_estimate_4_2 * 4
  
  #número de puntos dentro del círculo y la estimación de pi
  return(list(count_inside2 = count_inside2, estimated_pi2 = pi_estimate2))
}

n_points2 <- 100000
results <- estimate_pi2(n_points2)

cat("Número de puntos dentro del círculo:", results$count_inside2, "\n")
## Número de puntos dentro del círculo: 78707
cat("Estimación de pi:", results$estimated_pi2, "\n")
## Estimación de pi: 3.14828

Como vemos al aumentar la cantidad de puntos. Aumenta la cantidad de puntos dentro del círculo, así como la cercanía a la estimación de PI, tomando solo 1000 puntos, el resultado que obtenemos es de 3.26, mientras que al aumentar la cantidad de puntos a 100000 obtenemos 3.15, el cual es un valor mucho más cercano al valor real de PI