Se trata de un clásico problema de probabilidad geométrica. Se lanza una aguja de longitud L sobre una superficie rayada con líneas paralelas separadas una distancia D, siendo D ≥ L. Tras unos cálculos bastante sencillos (véase aquí), se obtiene la probabilidad de que la aguja corte alguna línea: 2L/Dℼ. Si sustituimos este valor por la frecuencia a la larga, A/N, (N lanzamientos y A intersecciones) podemos estimar el valor de ℼ ≈ 2NL/AD.
El paquete animation de R contiene la función buffon.needle() que resuelve el problema y presenta una solución gráfica. Se recomienda empezar con un valor pequeño para nmax, como 5 o 10, para probar luego con valores grandes (3000 o 4000), aunque en este caso el programa tarda bastante en terminar.
#INICIO -------------------------
rm(list=ls(all=TRUE))
library(animation)
#Lanzamos la aguja 500 veces
ani.options(nmax=500)
par(pch=19)
par(pch=19)
buffon.needle()
#La condición para que la aguja corte una línea es x ≤ (L/2)*sinϑ, siendo x la variable aleatoria uniforme que representa la distancia
#entre el centro de la aguja y la línea más cercana y ϑ el ángulo entre la aguja y las líneas
#Un punto rojo se corresponde con una aguja que ha cortado una línea y uno azul con una que no ha cortado ninguna línea
#entre el centro de la aguja y la línea más cercana y ϑ el ángulo entre la aguja y las líneas
#Un punto rojo se corresponde con una aguja que ha cortado una línea y uno azul con una que no ha cortado ninguna línea
#FIN -------------------------
No hay comentarios:
Publicar un comentario