# # Simulación del problema de Monty Hall. Permite distintos números de puertas. # rm(list=ls()) monty <- function(simuls=100000,puertas=3){ porig <- 0 pcambio <- 0 puerta <- c(1:puertas) for ( i in 1:simuls) { premio <- sample(puerta,1) # Puerta premiada orig <- sample(puerta,1) # Selección original if (orig==premio){ abre <- sample(puerta[puerta!=premio],1) # Puerta abierta por el presentador. cambio <- puerta[puerta!=orig&puerta!=abre] # Puerta no abierta a que se puede cambiar porig <- porig+1 }else{ abre <- puerta[puerta!=orig&puerta!=premio] cambio <- puerta[premio] pcambio <- pcambio+1 } } porig <- porig/simuls pcambio <- pcambio/simuls return(c(porig,pcambio)) } # # Ejemplo # monty(10000)