MonteCarlo: Juego

simulacion<-function(cobro,pago,limInferior,limSup,PosIncial){
  contCaras<-0
  contCruzes<-0
  Saldo<-1
  numIteraciones<-0
  primeraVez<-T
  historicoPosicion=c(1)
  while ((contCaras !=contCruzes) | (primeraVez)){
    primeraVez<-F
    aleatorio<-runif(1,0,1)

    Moneda<-ifelse(aleatorio<0.5,T,F)  # Si es menor que 0.5 sería cara 
    if(Moneda){
      PosIncial<-PosIncial +1
      contCaras<-contCaras+1
    }else{
      PosIncial<-PosIncial -1
      contCruzes<-contCruzes+1
    }
    historicoPosicion<-c(historicoPosicion,PosIncial)
    if(PosIncial==limInferior){
      Saldo<-Saldo+cobro}
    if(PosIncial==limSup){
      Saldo<-Saldo-pago}
    numIteraciones<-numIteraciones+1
  }

numIteraciones<-numIteraciones+1
salida<-list()
salida$numIteraciones<-numIteraciones
salida$historicoPosicion<-historicoPosicion
salida$Saldo<-Saldo

return(salida)
}

salida<-simulacion(1,3,1,10,1) 

grafHistTipoActivo <- highchart() %>%
  hc_xAxis(categories=1:length(salida$historicoPosicion)) %>%    
  hc_add_series(name = 'camino', data = salida$historicoPosicion,color='#C65302') %>%
  hc_add_theme(hc_theme_gridlight()) %>%
  hc_title(text = "Posición en cada iteración") %>% 
  hc_subtitle(text = paste0("Saldo Final: ",salida$Saldo) )  %>% hc_tooltip(crosshairs = TRUE,backgroundColor="#EBF1DE") %>%
  hc_plotOptions(
    series = list(
      states = list(hover = list(halo = list(size  = 20)))
    )
  ) %>%
  hc_exporting(enabled = TRUE,filename = "juegoAleatorio")

Simulación:


vectorSalida<-rep(0,250)
for(j in 1:250){
  salida<-simulacion(1,3,1,10,1)
  vectorSalida[j]<-salida$Saldo
}

s<-highchart() %>%  hc_xAxis(categories=1:250) %>%
  hc_add_series(categories=vectorSalida)

colorlista<-ifelse(vectorSalida>0,'#04B404','#FF0000')
VM<-mean(vectorSalida)
SUMA<-sum(vectorSalida)
highchart() %>%
  hc_xAxis(categories=1:length(vectorSalida)) %>% 
  hc_title(text = "Valor final para -250 simulaciones-") %>%
  hc_subtitle(text = paste0("Valor Medio: ",VM,'/ Ganancia Acumulada: ',SUMA ) ) %>%
  hc_add_series(name = 'Saldo Final', data = vectorSalida,color='#0404B4',type='column')