Cvičenie 15. 2. 2023

Príklad 2: Ponožky

n <- 10
k <- 6
m <- 0:3
p <- choose(n, m) * choose(n - m, k - 2 * m) * 2^(k - 2 * m) / choose(2 * n, k)
p
## [1] 0.346749226 0.520123839 0.130030960 0.003095975
sum(p)
## [1] 1
k <- 11
m <- 1:5
p <- choose(n, m) * choose(n - m, k - 2 * m) * 2^(k - 2 * m) / choose(2 * n, k)
p
## [1] 0.03048345 0.27435104 0.48011431 0.20004763 0.01500357
sum(p)
## [1] 1
choose(1,2) # 0
## [1] 0

Poznámky k R-ku

x <- 1:5
x
## [1] 1 2 3 4 5
x + 1
## [1] 2 3 4 5 6
y <- 11:15
y
## [1] 11 12 13 14 15
x + y
## [1] 12 14 16 18 20
A <- matrix(1:6, nrow = 2)
A
##      [,1] [,2] [,3]
## [1,]    1    3    5
## [2,]    2    4    6
A + 1
##      [,1] [,2] [,3]
## [1,]    2    4    6
## [2,]    3    5    7
x
## [1] 1 2 3 4 5
z <- 1:3
z
## [1] 1 2 3
x + z # iba warning (nie error)
## Warning in x + z: longer object length is not a multiple of shorter object
## length
## [1] 2 4 6 5 7

Príklad 3: Písomka o prezidentoch

set.seed(123)  
odpovede <- sample(1:24, size = 24, replace = FALSE)
odpovede == 1:24  
##  [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [13] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
sum(odpovede == 1:24)
## [1] 0
pisomka <- function(){
  odpovede <- sample(1:24, size = 24, replace = FALSE)
  return(sum(odpovede == 1:24))
}
pisomka()
## [1] 0
pisomka()
## [1] 2
pisomka()
## [1] 1
simulacie <- replicate(10^5, pisomka())
table(simulacie)  
## simulacie
##     0     1     2     3     4     5     6     7     8 
## 36957 36556 18442  6088  1581   317    52     5     2
mean(simulacie) 
## [1] 0.99976
simulacie <- replicate(10^5, pisomka())
mean(simulacie) 
## [1] 0.99844
pisomka <- function(n){
  odpovede <- sample(1:n, size = n, replace = FALSE)
  return(sum(odpovede == 1:n))
}
simulacie <- replicate(10^5, pisomka(10))
mean(simulacie) 
## [1] 0.99811

Príklad 4: Hľadanie písomiek

k <- 3:20
p <- choose(k - 1, 2)/choose(20, 3)
barplot(p)