pr3 <- function(){
  u <- runif(1, min = 0, max = 1)
  x <- 2*u^(1/3)  # vyska skody
  y <- runif(1, min = x, max = 2*x) # cas spracovania
  return(y >= 3)
}

set.seed(123)
N <- 10^5
simulacia_pr3 <- replicate(N, pr3())
prop.table(table(simulacia_pr3))  # 0.17037

##################################################

pr4 <- function(){
  u <- runif(1)
  x <- sqrt(u)
  y <- runif(1)
  skoda <- x + y
  spoluucast <- 1
  platba <- ifelse(skoda < spoluucast, 0, skoda - spoluucast)
  return(platba)
}

N <- 10^5
set.seed(123)
simulacia_pr4 <- replicate(N, pr4())
mean(simulacia_pr4) # 0.2491119

##################################################

pr5 <- function(){
  u <- runif(1)
  x <- 1 - (1 - u)^(1/3)
  return(x < 0.2)
}

N <- 10^5
set.seed(123)
simulacia_pr5 <- replicate(N, pr5())
prop.table(table(simulacia_pr5)) # 0.49073

####################################################

pr6 <- function(){
  u <- runif(1)
  x <- (-1 + sqrt(1 + 8*u))/2
  u <- runif(1)
  y <- 2*(x + 1) - 2*sqrt((x+1)^2 - (2*x + 1)*u)
  return(x + y >= 1)
}

N <- 10^5
set.seed(123)
simulacia_pr6 <- replicate(N, pr6())
prop.table(table(simulacia_pr6)) # 0.70885
