n_ciferne <- function(n){
  n <- n - 1
  cislo <- sample(10^n:(10^(n+1) - 1), size = 1, replace = TRUE)
  cifry <- strsplit(as.character(cislo), split = "")[[1]]
  return (sum(cifry == 9))
}

set.seed(12345)
n_ciferne(10) # 2
n_ciferne(10) # 1
n_ciferne(10) # 0

set.seed(12345)
pokusy <- replicate(10^5, n_ciferne(3))
mean(pokusy) # 0.31473

set.seed(12345)
n <- 3
n <- n - 1
cislo <- sample(10^n:(10^(n+1) - 1), size = 1, replace = TRUE) # 241
class(strsplit(as.character(cislo), split = "")) # "list"
cifry <- strsplit(as.character(cislo), split = "")[[1]] # "2" "4" "1"
sum(cifry == 9) # 0

1/9 + 1/10 + 1/10  # 0.3111111

########################################################

library(stringr)

n_ciferne_pr2 <- function(n){
  n <- n - 1
  cislo <- sample(10^n:(10^(n+1) - 1), size = 1, replace = TRUE)
  cifry <- as.character(cislo)
  return(str_count(string = cifry, pattern = "25"))
}

set.seed(12345)
n_ciferne_pr2(10) # 0

########################################################

cislo <- 1
tabulka <- table(factor(cislo, level = 0:9))
tabulka
tabulka>0


indexy <- unname(which(tabulka>0)) # kde tabulka obsahuje kladne cislo
indexy

nove <- c(as.character(unname(tabulka)[indexy]), names(tabulka)[indexy])
nove
tabulka_nova <- table(nove)
tabulka_nova
names(tabulka_nova)

for(mena in names(tabulka_nova)){
  tabulka[mena] <- tabulka_nova[mena] + tabulka[mena]
}

tabulka

# treba dokoncit - dat toto do cyklu a z toho urobit funkciu (zadava sa pocet krokov)

########################################################
# ROVNOMERNE ROZDELENIE

priklad1 <- function(){
  LM <- runif(2) # dva body, nezavisle rovnomerne na (0, 1)
                 #0 = bod A, 1 = bod B
  
  dlzka <- abs(LM[1] - LM[2])
  
  # dlzka = dlzka usecky LM = vzdialenost L od M
  # LM[1] = suradnica L = vzdialenost L od A
  
  return(dlzka < LM[1])
}

set.seed(123)
simulacie <- replicate(10^5, priklad1())
prop.table(table(simulacie)) #  TRUE: 0.75043
