Ho ricevuto dal mazziere 13 carte da un mazzo di 52 carte da gioco. Qual è la probabilità che abbia 4 assi?
Possiamo procedere in questo modo:
− i possibili insiemi di 13 carte (prese tra 52) sono 52·51·...·40/13!
(ossia
− fissati i 4 assi, i possibili insiemi delle altre 9 carte (prese tra le 52-4 = 48 rimanenti)
sono 48·47·...·40/9!
(ossia
− quindi la propabilità cercata è:
48·47·...·40/9!/(52·51·...·40/13!) =
13·12·11·10/(52·51·50·49) =
11/(17·5·49) = 11/4165 = 0.2641...%
Per commenti: calcolo combinatorio neGli Oggetti Matematici.
I calcoli fatti con questa calcolatrice:
Il calcolo fatto col software online WolframAlpha (vedi):
C(48,9)/C(52,13)*100
220/833 = 0.2641056422569...
Posso studiare il problema anche simulando il fenomeno con un programmino in JavaScript, software che è incorporato in tutti i browser. Basta andare qui: http://macosa.dima.unige.it/js/js.htm (puoi vedere anche qui), cliccare "macosa.dima.unige.it/js.com" e mettere nella finestra in alto quanto segue (in C ho messo le carte - numerate, da 1 a 52 - e ho supposto che gli assi siano i numeri 1, 2, 3 e 4; verifico se tra le prime 13 carte vi sono 1, 2, 3 e 4):
<pre><script> with(Math) { n=1e3; x=0; for(i=0; i<n; i=i+1) {C = new Array(52); C[1]=floor(random()*52+1); for(j=2; j<=13; j=j+1) { U=0; while(U<1) { C[j]=floor(random()*52+1); U=1; for(k=1;k<j;k=k+1) {if(C[k]==C[j]) U=0} } } s=0; A=0; for(j=1;j<=13;j=j+1) if(C[j]==1 || C[j]==2 || C[j]==3 || C[j]==4) A=A+1; if(A==4) s=1; x=x+s} document.writeln ("n=",n," fr = ", x/n*100,"%") n=n*10; x=0; for(i=0; i<n; i=i+1) {C = new Array(52); C[1]=floor(random()*52+1); for(j=2; j<=13; j=j+1) { U=0; while(U<1) { C[j]=floor(random()*52+1); U=1; for(k=1;k<j;k=k+1) {if(C[k]==C[j]) U=0} } } s=0; A=0; for(j=1;j<=13;j=j+1) if(C[j]==1 || C[j]==2 || C[j]==3 || C[j]==4) A=A+1; if(A==4) s=1; x=x+s} document.writeln ("n=",n," fr = ", x/n*100,"%") n=n*10; x=0; for(i=0; i<n; i=i+1) {C = new Array(52); C[1]=floor(random()*52+1); for(j=2; j<=13; j=j+1) { U=0; while(U<1) { C[j]=floor(random()*52+1); U=1; for(k=1;k<j;k=k+1) {if(C[k]==C[j]) U=0} } } s=0; A=0; for(j=1;j<=13;j=j+1) if(C[j]==1 || C[j]==2 || C[j]==3 || C[j]==4) A=A+1; if(A==4) s=1; x=x+s} document.writeln ("n=",n," fr = ", x/n*100,"%") } </script></pre>
Ottengo:
n=1000 fr = 0.1% n=10000 fr = 0.32% n=100000 fr = 0.247%
Impiegando un po' di tempo posso provare con n=1e6 e n=1e7:
n=1000000 fr = 0.2659% n=10000000 fr = 0.26502%
Posso controllare il ragionamento anche con questo altro script in cui modifico TruthValue nel modo sotto indicato.
{ with(Math) { var C = new Array(52); C[1]=floor(random()*52+1); for(i=2; i <= 13; i++) { U=0; while(U < 1) { C[i]=floor(random()*52+1); U=1; for(j=1; j < i; j++) { if(C[j]==C[i]) {U=0} } } } V=0; A=0; for(i=1; i<=13; i++) {if(C[i]==1 | C[i]==2 | C[i]==3 | C[i]==4) {A=A+1}} if(A==4) {V=1} }} n=2560000 0.264453125% +/- 0.009629432545263383% n=1280000 0.261875% +/- 0.013551708754346983% n=640000 0.26515625% +/- 0.01928439404494389% n=320000 0.2709375% +/- 0.027567181903338536% n=160000 0.275% +/- 0.0392763381082312% n=80000 0.2725% +/- 0.05529294157704357% n=40000 0.285% +/- 0.07996489376348766% n=20000 0.28% +/- 0.11209526425060681% n=10000 0.29% +/- 0.16132858609455775%
Potrei anche impiegare R (vedi):
# source("http://macosa.dima.unige.it/r.R") Event = function() {carte=sample(1:52,13); n=0; for(i in 1:13) if(carte[i]<5) n=n+1; ifelse(n==4,1,0)} # metto in "carte" i numeri 1, ,52 e assumo che i 4 assi siano le carte 1,2,3,4 PR = function(n) {f = 0; for (i in 1:n) f = f + ifelse(Event(),1,0) fr=f/n; S=sqrt(fr*(1-fr)/(n-1)); cat(fr*100, "+/-", 3*S*100,'\n'); fr0<<- fr; n0<<- n} PR2 = function(n) {f=0; for (i in 1:n) f=f+ifelse(Event(),1,0); n=n+n0; f=f+fr0*n0 fr=f/n;S=sqrt(fr*(1-fr)/(n-1));cat(fr*100,"+/-",3*S*100,' n =',n,'\n');fr0<<-fr;n0<<-n} PR(1e4) # 0.17 +/- 0.1235942 PR2(1e4) # 0.225 +/- 0.1005123 n = 20000 PR2(2e4) # 0.2425 +/- 0.07377774 n = 40000 PR2(4e4) # 0.25125 +/- 0.05309893 n = 80000 # ... PR2(256e4) # 0.2647852 +/- 0.006813298 n = 5120000 PR2(512e4) # 0.2643652 +/- 0.004813918 n = 10240000 # Posso prendere 0.264±0.005% come valore della probabilit cercata (OK)