priklad1 <- function(){
  L <- runif(1)
  M <- runif(1)
  LM <- abs(L - M)
  LA <- L
  return(LM < LA)
}

priklad1_simulacia <- replicate(10^5, priklad1())
prop.table(table(priklad1_simulacia))

#####################################################

priklad2 <- function(){
  x <- runif(1)
  y <- runif(1)
  
  # podla 2026-03-05.R
  if(x < y) {
    dlzky <- c(x, y - x, 1 -y)
  } else {
    dlzky <- c(y, x - y, 1 - x)
  }
  podmienka <- dlzky > 3/4
  return(all(!podmienka))
}

priklad2_simulacia <- replicate(10^5, priklad2())
prop.table(table(priklad2_simulacia))

priebezne_odhady <- cumsum(priklad2_simulacia)/1:length(priklad2_simulacia)
plot(priebezne_odhady)

plot(priebezne_odhady, 
     type = "l",         # line 
     ylim = c(0.8, 0.84) # hranice pre y-ovu os
)

#####################################################

priklad3 <- function(){
  x <- runif(1)
  y <- runif(1)
  
  if(x < y) {
    dlzky <- c(x, y - x, 1 -y)
  } else {
    dlzky <- c(y, x - y, 1 - x)
  }
  return(max(dlzky))
}

priklad3_simulacia <- replicate(10^5, priklad3())
priklad3_priemer <- mean(priklad3_simulacia) # odhad strednej hodnoty
print(priklad3_priemer)

#####################################################

priklad4 <- function(n){
  body <- runif(n)   # n nezavislych bodov na (0,1)
  usporiadane_body <- sort(body) # usporiada od najmensich po najvacsie
  usporiadane_body <- c(0, usporiadane_body, 1) # pridame krajne body
  dlzky <-  diff(usporiadane_body) # dlzky z usporiadanych bodov
  return(max(dlzky))
}

priklad4_simulacia <- replicate(10^5, priklad4(5)) # zvoleny parameter
priklad4_priemer <- mean(priklad4_simulacia) # odhad strednej hodnoty
print(priklad4_priemer)

priklad4_odhad <- function(n){
  simulacia <- replicate(10^5, priklad4(n)) 
  priemer <- mean(simulacia)
  return(priemer)
}

n_vektor <- 2:10  
priklad4_simulacia_vektor <- sapply(n_vektor, priklad4_odhad)
plot(n_vektor, priklad4_simulacia_vektor)