# On the computation of pi

title: "Mr"
author: "TEGEGNE"

date: "11 June 2020"

output: ## Asking the maths library

My computer tells me that π is approximatively

---
pi


```
## [1] 3.141593
```

## Buffon’s needle

Applying the method of (https://fr.wikipedia.org/wiki/Aiguille_de_Buffon), we get the (**approximation**)

```
set.seed(42)
N = 100000
x = runif(N)
theta = pi/2*runif(N)
2/(mean(x+sin(theta)>1))
```

```
## [1] 3.14327
```

## Using a surface fraction argument

A method that is easier to understand and does not make use of the (**sin**) function is based on the fact that if (**X∼U(0,1)**) and (**Y∼U(0,1),**) then P(**[X2+Y2≤1]=π/4 **)(see “Mhttps://en.wikipedia.org/wiki/Monte_Carlo_method") The following code uses this approach:

```
set.seed(42)
N = 1000
df = data.frame(X = runif(N), Y = runif(N))
df$Accept = (df$X**2 + df$Y**2 <=1)
library(ggplot2)
ggplot(df, aes(x=X,y=Y,color=Accept)) + geom_point(alpha=.2) + coord_fixed() + theme_bw()
```

It is therefore straightforward to obtain a (not really good) approximation to π by counting how many times, on average, (**X2**)+(**Y2**) is smaller than
1 :

```
4*mean(df$Accept)
```

```
## [1] 3.156
```


