# buffon.needle: Simulation of Buffon's Needle In animation: A Gallery of Animations in Statistics and Utilities to Create Animations

## Description

This function provides a simulation for the problem of Buffon's Needle, which is one of the oldest problems in the field of geometrical probability.

## Usage

 ``` 1 2 3 4 5 6 7 8 9 10 11``` ```buffon.needle( l = 0.8, d = 1, redraw = TRUE, mat = matrix(c(1, 3, 2, 3), 2), heights = c(3, 2), col = c("lightgray", "red", "gray", "red", "blue", "black", "red"), expand = 0.4, type = "l", ... ) ```

## Arguments

 `l` numerical. length of the needle; shorter than `d`. `d` numerical. distances between lines; it should be longer than `l`. `redraw` logical. redraw former ‘needles’ or not for each drop. `mat, heights` arguments passed to `layout` to set the layout of the three graphs. `col` a character vector of length 7 specifying the colors of: background of the area between parallel lines, the needles, the sin curve, points below / above the sin curve, estimated π values, and the true π value. `expand` a numerical value defining the expanding range of the y-axis when plotting the estimated π values: the `ylim` will be `(1 +/- expand) * pi`. `type` an argument passed to `plot` when plotting the estimated π values (default to be lines). `...` other arguments passed to `plot` when plotting the values of estimated π.

## Details

This is quite an old problem in probability. For mathematical background, please refer to https://en.wikipedia.org/wiki/Buffon's_needle or https://mste.illinois.edu/activity/buffon/.

‘Needles’ are denoted by segments on the 2D plane, and dropped randomly to check whether they cross the parallel lines. Through many times of ‘dropping’ needles, the approximate value of π can be calculated out.

There are three graphs made in each step: the top-left one is a simulation of the scenario, the top-right one is to help us understand the connection between dropping needles and the mathematical method to estimate π, and the bottom one is the result for each drop.

## Value

The values of estimated π are returned as a numerical vector (of length `nmax`).

## Note

Note that `redraw` has great influence on the speed of the simulation (animation) if the control argument `nmax` (in `ani.options`) is quite large, so you'd better specify it as `FALSE` when doing a large amount of simulations.

The maximum number of drops is specified in `ani.options('nmax')`.

Yihui Xie

## References

Ramaley, J. F. (Oct 1969). Buffon's Noodle Problem. The American Mathematical Monthly 76 (8): 916-918.

animation documentation built on Oct. 7, 2021, 9:18 a.m.