Un barattolo contiene 5 palline bianche e 3 nere, di uguali dimensioni e peso. Estraggo senza guardare, a caso, due palline. Qual è la probabilità che esse siano bianche?
Il numero delle possibili estrazioni che si possono effettuare è
Per commenti:
calcolo combinatorio neGli Oggetti Matematici.
Ovvero, indicati con A1 l'apparizione di una pallina bianca alla prima estrazione e con A2 l'apparizione
di una alla seconda, abbiamo che la probabiltà cercata equivale a:
Per commenti:
dipendenza e indipendenza neGli Oggetti Matematici.
Per avere una conferma di quanto ottenuto (o per fare direttamente il calcolo se non capissi come affrontare il problema) potrei stidiare la questione con una simulazione. Vediamo come farlo con un programma in Basic (eseguibile online), ma si potrebbe usare un altro linguaggio di programmazione. Basta che capiamo come introdurre il fenomeno da simulare. Nel programma viene usato "rnd" che assume un valore casuale con distribuzione uniforme tra 0 ed 1; quindi per generare un numero intero tra 1 e 8 uso "int(rnd*8+1)" ("int" è la "parte intera"). Supponiamo che le palline bianche siano le prime cinque.
10 input "numero prove: "; N : x = 0
20 for i=1 to N : U1 = int(rnd*8+1)
30 ok=0 : while ok=0 ' genero U2 diverso da U1
40 U2 = int(rnd*8+1) : if U1 <> U2 then ok = 1
50 wend
60 if U1 <= 5 and U2 <= 5 then x=x+1
70 next
80 print x/N*100
90 goto 10
numero prove: 1e3
33.7
numero prove: 1e4
35.6
numero prove: 1e5
35.727
numero prove: 1e6
35.6911 volendo proseguo, ma il valore 35.7% è sufficiente per rispondere al quesito:
numero prove: 1e7
35.68656
numero prove: 1e8
35.693045
Vediamo anche come farlo con un programmino in JavaScript, il software incoporato
in tutti i browser. Vedi QUI.
// 5 bianche poi 3 nere, U1 1a estratta, U2 2a diversa da U1
with (Math) {
n=1e5; x=0; for(i=0; i<n; i=i+1) {
U1 = floor(random()*8+1)
go=0; while(go==0) {U2 = floor(random()*8+1); if(U1 != U2) {go=1} }
if(U1 <= 5 && U2 <= 5) {ok=1} else {ok=0}
x=x+ok}
document.writeln("n=",n," P = ",x/n*100,"%<br>" )
n=n*2; x=0; for(i=0; i<n; i=i+1) {
U1 = floor(random()*8+1)
go=0; while(go==0) {U2 = floor(random()*8+1); if(U1 != U2) {go=1} }
if(U1 <= 5 && U2 <= 5) {ok=1} else {ok=0}
x=x+ok}
document.writeln("n=",n," P = ",x/n*100,"%<br>" )
}
Ottengo: n=100000 P = 35.504% n=200000 P = 35.724%
Ho generato due uscite in modo da avere una conferma dell'ordine di grandezza del valore ottenuto.