plot(c(0,2),c(0,2),type='n',main='布丰投针实验',xlab='X',ylab='Y')
abline(h=0.5)
abline(h=1.5,col='red')
finished <- FALSE
trial <- 0
cross <- 0
while (!finished) {
Dist <- runif(1,min=0,max=1/2)
Theta <- runif(1,0,pi)
central.x <- runif(1,0.5,1.5)
central.y <- Dist +1
y1 <- sin(Theta)/4 + central.y
x1 <- cos(Theta)/4 + central.x
y2 <- sin(Theta+pi)/4 + central.y
x2 <- cos(Theta+pi)/4 + central.x
trial <- trial +1
cross <- cross + ifelse(0.25*sin(Theta)>=Dist,1,0)
lines(c(x1,x2),c(y1,y2),lty=2)
points(central.x,central.y,pch=16,col='grey')
cat('trial=',trial,'cross=',cross,'PI=',trial/cross,'\n')
input <- readline('stop?')
if (input =='y') finished <- TRUE
}