```# -------------------------------------------------------------------
# Lecture 2: Random variables and probability distributions

# Required libraries: --
rm(list=ls())
# source("http://klein.uk/R/myfunctions.R")
ls()
# -------------------------------------------------------------------

# --- Simulation: de Mere's Problem (page 2) -------------------

set.seed(123)

# Simulate 4 throws of a single die
dice4 = sample(6,4,T)
# Check condition
6 %in% dice4
# 1000 simulations
e = sapply(1:1000, function(x) 6 %in% sample(6,4,T))
# frequency table
table(e)
# relative frequency
mean(e)

# Simulate 24 throws of two dice
dice24.1 = sample(6,24,T); dice24.2 = sample(6,24,T)
# Check condition
12 %in% (dice24.1 + dice24.2)
# 1000 simulations
f = sapply(1:1000, function(x) 12 %in% (sample(6,24,T) + sample(6,24,T)))
# frequency table
table(f)
# relative frequency
mean(f)

# --- Simulation: Central Limit Theorem (page 27) -------------------

# 10,000 draws from a uniform distribution. This is the parent distribution which is obviously non-Normal.
x = runif(10000)
hist(x)

# To compute an average, two observations are drawn at random from the parent distribution and averaged.
# Then another sample of two is drawn and another value average is computed. This process is repeated 10,000 times.
x = sapply(1:10000, function(x) mean(runif(2)) )
# Distribution of averages of two
hist(x, freq=F)

# Repeatedly taking eight from the parent distribution and computing averages
x = sapply(1:10000, function(x) mean(runif(8)) )
hist(x, freq=F)
# Distribution of the mean approaches a Normal distribution
lines(x=seq(0,1,.01), y=dnorm(seq(0,1,.01), mean(x), sd(x)), col="blue")

# -------------------------------------------------------------------
# --- End of Session ------------------------------------------------

q("no")
```