Generamos las coordenadas, dada la recomendación, trabajaremos con
100.000 puntos
# Número de Puntos (100.000)
n <- 100000
- Genere n coordenadas x: X1, . . . , Xn. Utilice la distribución
uniforme con valor mínimo de 0 y valor máximo de 1. La distribución
uniforme genera variables aleatorias que tienen la misma probabilidad de
venir de cualquier parte del intervalo (0,1).
# Coordenadas aleatorias entre 0 y 1 (X, y)
x <- runif(n)
y <- runif(n)
- Cada punto (Xi,Yi) se encuentra dentro del círculo si su
distancia desde el centro (0.5,0.5) es menor a 0.5. Para cada par
(Xi,Yi) determine si la distancia desde el centro es menor a 0.5. Esto
último se puede realizar al calcular el valor (Xi−0.5)2+(Yi−0.5)2, que
es el cuadrado de la distancia, y al determinar si es menor que
0.25.
# Requerimos calcular (contar) cuántos puntos están dentro y fuera del círculo
dentro <- 0
fuera <- 0
# Determinar la distancia y contar cuántos puntos están dentro del círculo.
for (i in 1:n) {
distancia_cuadrada <- (x[i] - 0.5)^2 + (y[i] - 0.5)^2
if (distancia_cuadrada <= 0.25) {
dentro <- dentro + 1
} else {
fuera <- fuera + 1
}
}
- ¿Cuántos de los puntos están dentro del círculo? ¿Cuál es su
estimación de π?
# Calcular la estimación de π y la aproximación del valor de π
estimacion_pi <- dentro / n
aproximacion_pi <- estimacion_pi * 4
# Mostrar resultados
cat("Puntos dentro del círculo:", dentro, "\n")
## Puntos dentro del círculo: 78666
cat("Estimación de π:", estimacion_pi, "\n")
## Estimación de π: 0.78666
cat("Aproximación del valor de π:", aproximacion_pi, "\n")
## Aproximación del valor de π: 3.14664