# Basic Probability Review
# Example01
choose(6, 3) * choose(9, 2) / choose(15, 5)
## [1] 0.2397602
# Example02
lanzamientos_10 <- sample(c("A", "S"), 8, replace = TRUE)
lanzamientos_10
## [1] "S" "S" "S" "A" "A" "S" "S" "A"
# Example03
cumsum(lanzamientos_10 == "A")
## [1] 0 0 0 1 2 2 2 3
round(cumsum(lanzamientos_10 == "A") / 1:10, 2)
## Warning in cumsum(lanzamientos_10 == "A")/1:10: longitud de objeto mayor no es
## múltiplo de la longitud de uno menor
## [1] 0.00 0.00 0.00 0.25 0.40 0.33 0.29 0.38 0.00 0.00
# ExampleGeneral
lanzar <- function(n = 1000){
lanzamientos <- sample(c("A", "S"), n, replace = TRUE)
frec_rel <- cumsum(lanzamientos == "A") / 1:n
data.frame(lanzamiento = 1:n, frecuencia_relativa = frec_rel)
}
head(lanzar())
## lanzamiento frecuencia_relativa
## 1 1 0.0000000
## 2 2 0.0000000
## 3 3 0.3333333
## 4 4 0.5000000
## 5 5 0.6000000
## 6 6 0.6666667
tail(lanzar())
## lanzamiento frecuencia_relativa
## 995 995 0.4844221
## 996 996 0.4849398
## 997 997 0.4844534
## 998 998 0.4839679
## 999 999 0.4834835
## 1000 1000 0.4830000
library(plyr)
lanzamientos_3 <- rdply(3, lanzar)
head(lanzamientos_3)
## .n lanzamiento frecuencia_relativa
## 1 1 1 0.0000000
## 2 1 2 0.5000000
## 3 1 3 0.6666667
## 4 1 4 0.7500000
## 5 1 5 0.6000000
## 6 1 6 0.5000000
# GameDownfall
apostar <- function(dinero = 100, apuesta = 5, tope = 200){
while(0 < dinero & dinero < tope){
if(runif(1) < 0.47){
dinero <- dinero + apuesta
}
else{
dinero <- dinero - apuesta
}
}
dinero > 0
}
juegos <- rdply(2000, apostar())
sum(juegos$V1) / 2000
## [1] 0.0855
juegos <- rdply(5000, apostar(apuesta = 50))
sum(juegos$V1) / 5000
## [1] 0.4352