# Esercizio 4.61: il problema della roulette “Royal Oak”. --------------- RoyalOak <- c(1:32) prove <- 100000 npuntato <- 16 guadagno <- rep(0,prove) for (i in 1:prove) { out <- sample(RoyalOak,size=1,replace=FALSE) guadagno[i] <- ifelse(out==npuntato,27,-1) } x <- c(1:prove) y <- cumsum(guadagno) plot(x,y,log="x",type="l") plot(x,y/x,log="x",type="l") abline(h=-1/8,lty=2) table(guadagno)/sum(table(guadagno)) # ----------------------------------------------------------------------- # Esercizio 4.61: la roulette “Royal Oak”(un algoritmo più veloce). RoyalOak <- c(1:32) prove <- 100000 npuntato <- 16 out <- sample(RoyalOak,size=prove,replace=TRUE) guadagno <- ifelse(out==npuntato,27,-1) table(guadagno)/sum(table(guadagno)) mean(guadagno) x <- c(1:prove) y <- cumsum(guadagno) plot(x,y,log="x",type="l") plot(x,y/x,log="x",type="l") abline(h=-1/8,lty=2) # ----------------------------------------------------------------------- # Esercizio 4.61: la roulette “Royal Oak”(un confronto tra algoritmi). -- RoyalOak <- c(1:32); prove <- 100000; npuntato <- 16 tmp <- runif(1); rs <- .Random.seed out.a <- rep(NA,prove) guadagno <- 0 for (i in 1:prove) { out.a[i] <- sample(RoyalOak,size=1,replace=FALSE) guadagno <- guadagno + ifelse(out.a[i]==npuntato,27,-1) } print(guadagno/prove); .Random.seed <- rs out.b <- sample(RoyalOak,size=prove,replace=TRUE) guadagno <- ifelse(out.b==npuntato,27,-1) mean(guadagno) # -----------------------------------------------------------------------