x <- rnorm(10^5)
hist(x)
?rnorm
y <- pnorm(x)
hist(y)

x <- rnorm(10^5, mean = 10, sd = 2)
hist(x)
y <- pnorm(x, mean = 10, sd = 2)
hist(y)

x <- rexp(10^5, rate = 1)
hist(x)
y <- pexp(x, rate = 1)
hist(y)

###########################################

u <- runif(10^5)
x <- -log(u)
hist(x)
mean(x)
var(x)

###########################################

generator_pr2 <- function(){
  u <- runif(1)
  x <- 1/((1/10) - (2/25)*u) - 10
  return(x)
}

pr2 <- function(){
  zivotnost <- generator_pr2()
  return(zivotnost < 6)
}

simulacia_pr2 <- replicate(10^5, pr2())
prop.table(table(simulacia_pr2)) # TRUE 0.46838

###########################################

curve((1/9)*(2*x^2 - x^3/3), from = 0, to = 3)
?uniroot 

generator_pr3 <- function(){
  u <- runif(1)
  g <- function(x) 6*x^2 - x^3 - 27*u
  x <- uniroot(g, interval = c(0, 3))$root
  return(x)
}

pr3 <- function(){
  vydavky <- generator_pr3()
  platba <- min(vydavky, 1)
  return(platba)
}

simulacia_pr3 <- replicate(10^5, pr3())
mean(simulacia_pr3) # 0.9347566

###########################################

pnorm(1.2) - pnorm(-1.2) # 0.7698607
pnorm(12, mean = 0, sd = 10) - pnorm(-12, mean = 0, sd = 10) 