/*
  Sia dato un quadrato di lato 2 nel quale è inscritto un cerchio di raggio 1.
  L'area del quadrato è pari a 4 e l'area del cerchio pari a pi_greco.
  Lancio a caso N volte  una biglia puntiforme sul quadrato e conto quante volte
  la biglia cade dentro il cerchio e quante fuori dal cerchio.
  Posso trovare una stima del numero pi_greco osservando la frequenza con cui la biglia cade dentro al cerchio?
  Il valore che trovi per pi_greco di quanto si discosta dalla costante Math.PI di Java?
*/

import javax.swing.JOptionPane;
class ExArray_09 {
  public static void main(String[] args) {
    long N = Long.parseLong(
         JOptionPane.showInputDialog("Numero di lanci?\n(Digitare un numero da almeno 50000 in su (Es. 100000 oppure 500000)"));
    
    double AreaCerchio = Math.PI,
           AreaQuadrato = 4.0;
    long   tot = 0;                        //totalizza biglia nel quadrato
    
    for (long i=0; i<N; i++)
      if ((Math.random() * AreaQuadrato) > AreaCerchio) tot++;
    
    double percQuadrato,                //% di biglie nel quadrato
           percCerchio,                 //% di biglie nel cerchio (per differenza)
           statAreaCerchio;             //% stimata di area occupata dal cerchio sulla base dei lanci
          
          percQuadrato = ((double) tot / N) * 100;
          percCerchio = 100 - percQuadrato;
          statAreaCerchio = AreaQuadrato * percCerchio / 100;    //sarà un valore vicino a pigreco
      
    // stampa
    
    System.out.println("Su " + N +" lanci, la biglia e' caduta nel quadrato " + tot +
                       " volte (" + percQuadrato + "%)");
    System.out.println("\nQuindi si e' stimato che il cerchio inscritto dentro il quadrato ricopra un area del " +
                       percCerchio + "%, che rapportata all'area del quadrato (" + AreaQuadrato +
                       ") e' di circa " + statAreaCerchio);
    System.out.println("Questo valore e' una stima del numero pigreco!");  
    System.exit(0);
  }
}