/*
  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);
  }
}