Problema de la aguja de Buffon

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

No hay comentarios:

Publicar un comentario