n <- 8
k <- 10
n*(1 - ((n - 1)/n)^k)

###########################
vystupovanie <- function(pocet_poschodi, pocet_ludi){
  kde_vystupuju <- sample(1:pocet_poschodi, size = pocet_ludi, replace = TRUE)
  kde_zastane <- unique(kde_vystupuju)
  pocet_zastaveni <- length(kde_zastane)
  return(pocet_zastaveni)
}

set.seed(123)
simulacie <- replicate(10^5, vystupovanie(8, 10))
mean(simulacie)

odhad_strednej_hodnoty <- function(pocet_ludi){
  mean(replicate(10^5, vystupovanie(8, pocet_ludi)))
  # niekde tu sa bude volat funkcia `vystupovanie` a `replicate`
}

# test
odhad_strednej_hodnoty(10)
pocty <- 2:15
odhady <- sapply(pocty, odhad_strednej_hodnoty)
odhady
plot(pocty, odhady)

###############################

pisomka <- function(n){
  spravne <- 1:n  # bez ujmy na vseobecnosti
  odpovede <- sample(1:n, n, FALSE) # doplnte
  return(sum(odpovede == spravne))        # doplnte
}

a = replicate(10^5, pisomka(24))
mean(a)

odhad_strednej_hodnoty_pisomka <- function(n){
  mean(replicate(10^5, pisomka(n)))
}
odhad_strednej_hodnoty_pisomka(5)
pocty <- 2:15
odhady <- sapply(pocty, odhad_strednej_hodnoty_pisomka)
odhady
plot(pocty, odhady)
