# Exercise 3 : Box Muller Algo

```{r}
BM <- function(n) {
  U1 <- runif(n)
  U2 <- runif(n)
  X1 <- sqrt(-2 * log(U1)) * cos(2 * pi * U2)
  X2 <- sqrt(-2 * log(U1)) * sin(2 * pi * U2)
  return(c(X1, X2))
}

n <- 10e4
X <- BM(n)

hist(X, breaks = 50, freq = FALSE)
curve(dnorm(x), add = TRUE, col = "red")
```