Abad Reynoso Marlen
Barrientos Salomon Ivan Samuel
Cabrera Renteria Yanitzi Alejandra
Ortiz Cruz Elizabeth
Sanchez Barajas Raul Miguel
Nuestra estrategia sera la de un jugador conservador el cual siempre apostara por la opcion con mayor probabilidad que en este caso es la de los pares ya que se tiene que 0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36 son pares (no consideramos al 00 como par ni impar) y por ende se tiene una probabilidad de exito de 19/38 = 1/2, esta probabilidad supera a cualquier otra (impares (18/38), rojos (18/38), negros (18/38), primeros 12(12/38), segundos 12 (12/38), ultimos 12 (12/38), 1ra columna (12/38), 2da columna (12/38), 3ra columna (12/38), 1 casilla (1/38), 4 casillas (4/38)) pero a cambio nos ofrece las menores ganancias posibles (1:1).
Creamos una funcion (evalua) la cual hace las comprobacion de si el numero que se obtuvo en la ruleta coincide con alguno de los numeros con los que se esta jugando con el metodo de azar y el metodo de la estrategia.
evalua <- function(numeros, par){
i <- 0
j <- 1
l <- 0
k <- 1
n <- length(numeros)
aleatorio <- sample(ruleta,1)
while(i==0 & j<=n){
if(numeros[j]==aleatorio){
i=(i+1)
}else{
j=(j+1)
}
}
while(l==0 & k<=12){
if(par[k]==aleatorio){
l=(l+1)
}else{
k=(k+1)
}
}
resultados <- c(i,l)
return(resultados)
}
Aqui es donde se manda a llamar a la funcion, aqui se escoje de manera aleatoria la opcion a jugar, los numeros con los que se jugara y el numero de fichas que se apostaran.
x <- 1
saldos_1 <- c(0,0,0,0,500)
saldos_2 <- c(0,0,0,0,500)
while (x<=100) {
ruleta <- c(00,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36)
opciones <- c("1 casilla","2 casillas","4 casillas","primeras 12","segundas 12","ultimas 12","1ra columna","2da columna","3ra columna","pares","impares","negras","rojas","00")
numeros <- c()
eleccion <- sample(opciones,1)
apostado <- sample(c(1,2,3,4),1)
par <- c(0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36)
if(eleccion=="1 casilla"){
numeros <- sample(c(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,34,35,36),1)
m <- 37
}else if(eleccion == "2 casillas"){
numeros <- sample(c(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,34,35,36),2,replace = F)
m <- 18
}else if(eleccion=="4 casillas"){
numeros <- sample(c(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,34,35,36),4,replace = F)
m <- 6
}else if(eleccion=="primeras 12"){
numeros <- c(1,2,3,4,5,6,7,8,9,10,11,12)
m <- 1
}else if(eleccion=="segundas 12"){
numeros <- c(13,14,15,16,17,18,19,20,21,22,23,24)
m <- 1
}else if(eleccion=="ultimas 12"){
numeros <- c(25,26,27,28,29,30,31,32,33,34,35,36)
m <- 1
}else if(eleccion=="1ra columna"){
numeros <- c(1,4,7,10,13,16,19,22,25,28,31,34)
m <- 1
}else if(eleccion=="2da columna"){
numeros <- c(2,5,8,11,14,17,20,23,26,29,32,35)
m <- 1
}else if(eleccion=="3ra columna"){
numeros <- c(3,6,9,12,15,18,21,24,27,30,33,36)
m <- 1
}else if(eleccion=="pares"){
numeros <- c(0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36)
m <- 1
}else if(eleccion=="impares"){
numeros <- c(1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35)
m <- 1
}else if(eleccion=="negras"){
numeros <- c(4,10,13,22,28,31,2,8,11,17,20,26,29,35,6,15,24,33)
m <- 1
}else if(eleccion=="rojas"){
numeros <- c(1,7,16,19,25,34,5,14,23,32,3,9,12,18,21,27,30,36)
m <- 1
}else{
numeros <- c(00)
m <- 1
}
resultados <- evalua(numeros, par)
azar <- resultados[1]
estrategia <- resultados[2]
if(azar==1){
saldos_1[x] <- (apostado*m)
}else{
saldos_1[x] <- (-apostado)
}
if(estrategia==1){
saldos_2[x] <- (1)
}else{
saldos_2[x] <- (-1)
}
x = (x+1)
}
Aqui se obtine el numero de veces que gano nuestra estrategia contra la azarosa, asi como las veces que se empato y perdio.
saldo_azar <- sum(saldos_1)
saldo_estrategia <- sum(saldos_2)
a <- 0
b <- 0
c <- 0
for(v in 1:length(saldos_1)){
if(saldos_1[v]<saldos_2[v]){
a=(a+1)
} else if(saldos_1[v]==saldos_2[v]){
b=(b+1)
} else{
c=(c+1)
}
}
print(c("Con cien simulaciones la estrategia le gano: ", a , "veces a el azar"))
## [1] "Con cien simulaciones la estrategia le gano: "
## [2] "56"
## [3] "veces a el azar"
print(c("Con cien simulaciones la estrategia empato: ", b , "veces con el azar"))
## [1] "Con cien simulaciones la estrategia empato: "
## [2] "17"
## [3] "veces con el azar"
print(c("Con cien simulaciones la estrategia perdio: ", c , "veces con el azar"))
## [1] "Con cien simulaciones la estrategia perdio: "
## [2] "27"
## [3] "veces con el azar"
Ahora se hacen los histogramas donde se ven las frecuencias de ganancias y perdidas para ambas metodologias.
vector_1 <- c(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
vector_2 <- c(0,0)
for(o in 1:length(saldos_1)){
if(saldos_1[o]==(-4)){
vector_1[1] = (vector_1[1]+1)
}else if(saldos_1[o]==(-3)){
vector_1[2] = (vector_1[2]+1)
}else if(saldos_1[o]==(-2)){
vector_1[3] = (vector_1[3]+1)
}else if(saldos_1[o]==(-1)){
vector_1[4] = (vector_1[4]+1)
} else if(saldos_1[o]==1){
vector_1[5] = (vector_1[5]+1)
} else if(saldos_1[o]==2){
vector_1[6] = (vector_1[6]+1)
} else if(saldos_1[o]==3){
vector_1[7] = (vector_1[7]+1)
} else if(saldos_1[o]==4){
vector_1[8] = (vector_1[8]+1)
} else if(saldos_1[o]==6){
vector_1[9] = (vector_1[9]+1)
} else if(saldos_1[o]==12){
vector_1[10] = (vector_1[10]+1)
} else if(saldos_1[o]==18){
vector_1[11] = (vector_1[11]+1)
} else if(saldos_1[o]==24){
vector_1[12] = (vector_1[12]+1)
} else if(saldos_1[o]==36){
vector_1[13] = (vector_1[13]+1)
} else if(saldos_1[o]==54){
vector_1[14] = (vector_1[14]+1)
} else if(saldos_1[o]==72){
vector_1[15] = (vector_1[15]+1)
} else if(saldos_1[o]==37){
vector_1[16] = (vector_1[16]+1)
} else if(saldos_1[o]==74){
vector_1[17] = (vector_1[17]+1)
} else if(saldos_1[o]==111){
vector_1[18] = (vector_1[18]+1)
} else{
vector_1[19] = (vector_1[19]+1)
}
}
for(u in 1:length(saldos_2)){
if(saldos_2[u]==(-1)){
vector_2[1] = (vector_2[1]+1)
} else{
vector_2[2] = (vector_2[2]+1)
}
}
etiquetas <- c(-4,-3,-2,-1,-1,1,1,2,3,4,6,12,18,24,36,54,72,37,74,111,148)
plot(x = c(1,2,3,4,6,8,9,10,11,12,13,14,15,16,17,18,19,20,21), xaxt = "n", y = vector_1, type = "h", col = "blue", main = "Histogramas", xlab = "No. Fichas Ganadas/Perdidas", ylab = "Frecuencia", xlim = c(1,21), ylim = c(0,100))
points(x = c(5,7), xaxt = "n", y = vector_2, type = "h", col = "red")
axis(1, at = seq(from=1,to=21,by=1), labels = etiquetas[1:21])
legend("topright", title = "Modelo", c("azar","estrategia"), fill = c("blue","red"))
Por ultimo, aqui se muestra el diagrama de arbol de la estrategia utilizada.
library(imager)
imagen <- load.image("C:/Users/HP/Desktop/arbol.jpg")
plot(imagen)
Para el juego del 21 nuestra estrategia consiste en pedir carta siempre y cuando la suma de nuestras cartas no supere al numero 16:
library(imager)
imagen <- load.image("C:/Users/HP/Desktop/21.jpg")
plot(imagen)
Cabe aclarar que no consideramos que el As puede tomar el valor 11, y se tiene como hipotesis que el juego acaba cuando “nuestro jugador” baja sus cartas.
Aqui se realiza el juego “21-Black Jack” 100 veces para las dos metodologias (estrategia y azar) y se acumulan las veces que se gano y perdio en los dos casos.
simulacion<-1
j1_ganaste<-0
j1_perdiste<-0
a1_ganaste<-0
a1_perdiste<-0
while(simulacion<=100){
maso<-c()
revolver<-c()
j1<-0
j2<-0
j3<-0
j4<-0
a1<-0
a2<-0
a3<-0
a4<-0
azar<-sample(10:20,1)
a<-replicate(4,{c(1,2,3,4,5,6,7,8,9,10,10,10,10)})
b<-sample(a,52,replace=F)
j1=b[1]+b[2]
j2=b[3]+b[4]
j3=b[5]+b[6]
j4=b[7]+b[8]
a1=b[1]+b[2]
a2=b[3]+b[4]
a3=b[5]+b[6]
a4=b[7]+b[8]
i<-0
n<-0
j<-0
k<-1
while(j==0){
if(j1<=15){
j1=(j1+b[9+i])
j2=(j2+b[10+i])
j3=(j3+b[11+i])
j4=(j4+b[12+i])
i=(i+4)
}else{
j=1
}
}
while(k==0){
if(a1<=azar){
a1=(a1+b[9+n])
a2=(a2+b[10+n])
a3=(a3+b[11+n])
a4=(a4+b[12+n])
n=(n+4)
}else{
k=1
}
}
if((21<j1) | (j1<j2&j2<=21) | (j1<j3&j3<=21) | (j1<j4&j4<=21)){
j1_perdiste=(j1_perdiste+1)
}else{
j1_ganaste=(j1_ganaste+1)
}
if((21<a1) | (a1<a2&a2<=21) | (a1<a3&a3<=21) | (a1<a4&a4<=21)){
a1_perdiste=(a1_perdiste+1)
}else{
a1_ganaste=(a1_ganaste+1)
}
simulacion=(simulacion+1)
}
Por ultimo mostramos los resultados y vemos como nuestra metodologia fue mejor que la azarosa.
print(c("Con la estrategia ganamos: ", j1_ganaste, " veces.", " Y perdimos: ", j1_perdiste, " veces." ))
## [1] "Con la estrategia ganamos: " "41"
## [3] " veces." " Y perdimos: "
## [5] "59" " veces."
print(c("Con el azar se ganaba: ", a1_ganaste," veces.", " Y se perdia: ", a1_perdiste, " veces"))
## [1] "Con el azar se ganaba: " "28"
## [3] " veces." " Y se perdia: "
## [5] "72" " veces"