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 DL. 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