Un dado truccato dà 1, 2, 3, 4, 5, 6 con, in ordine, le probabilità (arrotondate) 0.125, 0.170, 0.240, 0.170, 0.125, 0.170. Qual è la probabilità che, lanciatolo, si ottenga un numero multiplo di 3?
Verifichiamo, prima di tutto, se il problema è ben posto, ossia se
la somma delle probabilità è pari ad 1:
125+170+240+170+125+170 = 125+125+240+170+170+170 = 250+240+510 = 1000. OK (ma anche se
avessimo ottenuto 998 o 1002 avremmo detto OK, in quanto i valori sono arrotondati).
La probabilità cercata, per la proprità additiva, è la somma
delle probabilità che esacano 3 o 6, ossia 0.240+0.170 = 0.410.
Se il dado fosse stato equo invece sarebbe stata 2/6 = 1/3 = 0.333
.
Per altri commenti: calcolo delle probabilità neGli Oggetti Matematici.
Potrei studiare la simulazione del fenomeno con questo semplice script:
function TruthValue() { with(Math) { U0 = random(); U=6 if (U0<0.125+0.17+0.24+0.17+0.125) {U=5}; if (U0<0.125+0.17+0.24+0.17) {U=4}; if (U0<0.125+0.17+0.24) {U=3}; if (U0<0.125+0.17) {U=2}; if (U0<0.125) {U=1}; V=0; if (U==3) { V = 1}; if (U==6) { V = 1}; }}
Ho le seguenti uscite:
n=10240000 40.995830078125% +/- 0.04610865907417184% n=5120000 41.00162109375% +/- 0.06520889936050078% n=2560000 41.0290234375% +/- 0.09222870418525478% n=1280000 41.019921875% +/- 0.13042670589904629% n=640000 40.95609375% +/- 0.18440742868955048% n=320000 40.96875% +/- 0.26080402562123445% n=160000 40.9525% +/- 0.3688107637658629% n=80000 41.14375% +/- 0.521947961404103% n=40000 40.8% +/- 0.7372038976698838% n=20000 40.485% +/- 1.041303685011352% n=10000 41.06% +/- 1.4759019576716015%
da cui potrei dedurre che la probabiltà è 40.1 ± 0.05
Ecco, invece, come simulare il fenomeno con R:
p <- c(0.125,0.17,0.24,0.17,0.125,0.17) sum(p) # ottengo 1 V <- function(x) ifelse( x < p[1],1,ifelse( x < sum(p[1:2]),2, ifelse( x < sum(p[1:3]),3,ifelse( x < sum(p[1:4]),4, ifelse( x < sum(p[1:5]),5,6))))) V(runif(1)) # Questa è un'uscita del nostro dado. # Volendo, nel modo seguente, ottengo un istogramma sperimentale # che approssima quello teorico U <- V(runif(1e5)) hist(U, seq(0.5,6.5,1), probability=TRUE) abline(h=axTicks(2),lty=3) # Ecco come ritrovare, ovviamente, 0.41 (approssimato) length(subset(U, U == 3 | U == 6))/1e5