/*
Estraendo a caso due carte da un mazzo siciliano completo calcolare (con carta e penna)
la probabilità di ottenere due carte dello stesso seme.
Impostare una simulazione/esperimento che simuli l'estrazione delle carte e
calcoli la frequenza con cui vengono estratte due carte delle stesso seme.
Il valore osservato è eguale a quello previsto teoricamente?
*/
import javax.swing.JOptionPane;
class ExArray_10 {
public static void main(String[] args) {
int N = Integer.parseInt(JOptionPane.showInputDialog("Quante estrazioni?"));
/* So di esagerare, ma voglio simulare DAVVERO il mazzo di 40 carte con tanto
di carte da 1 al 10 per ogni seme (ovviamente tutto ciò POTEVA BENISSIMO
essere evitato ma si sa... i programmatori sono pazzi, e poi un po di
esercitazione non guasta!
*/
String[] mazzo = new String[40];
String[] semi = {"O", "C", "B", "S"}; //Oro, Coppe, Bastoni, Spade
/* riempie mazzo con il sistema:
1O 1C 1B 1S 2O 2C 2B 2S 3O ....... */
int item=0;
for (int k=0; k<10; k++)
for (int s=0; s<semi.length; s++)
mazzo[item++] = String.valueOf(k+1) + semi[s];
//Estrazioni...
String c1, c2; //semi delle due carte
int freq=0; //frequenza di estrazione di due carte dello stesso seme
for (int k=0; k<N; k++) {
c1 = mazzo[((int) (Math.random() * 40))]; //da 0 a 39
c2 = mazzo[((int) (Math.random() * 40))];
if (c1.charAt(1) == c2.charAt(1)) freq++;
//System.out.println(c1.charAt(1) + ", " + c2.charAt(1));
}
System.out.println("La frequenza con cui due carte dello stesso seme vengono estratte " +
"e' del " + (float) freq / N * 100 + "%\n" +
"(stima eseguita effettuando una simulazione di " + N + " estrazioni)");
System.exit(0);
}
}