Forum Informatica Unict

LAUREA TRIENNALE (D.M. 270/04) => Programmazione 1, 9 CFU => Topic started by: Vivynz on 07-11-2008, 15:48:59



Title: stima di pi greco..
Post by: Vivynz on 07-11-2008, 15:48:59
Ciao..volevo sapere se qualcuno che ha fatto l'esercizio sulla stima di pi grego potesse spiegarmi qualcosa...perchè quando è stato visto in aula non sono potuta restare altrimenti perdevo il treno  .smile c'è qualcuno tanto gentile da illuminarmi su come si fa? .penso .arrossisco


Title: Re:stima di pi greco..
Post by: andreacannella on 10-11-2008, 20:14:59
Io ho provato a rifarlo a casa e ho abbozzato il codice sottostante...
...dagli un'occhiata e vedi che ne pensi.

Fammi sapere

Saluti

Andrea



public class PIgreco
{
public static void main (String [] args)
  {
    int counter = 0; //il contatore per il ciclo while
    int d = 0;
    final int k = 1000000000;
    while (counter<k)
    { 
      double x = Math.random(); //un punto casuale sull'asse delle x
      double y = Math.random(); //un punto casuale sull'asse delle y
      /*
      System.out.println(x+"\n"+y);
      */
      double dist = Math.sqrt((Math.pow((1/2-x),2))+(Math.pow((1/2-y),2))); //distanza dal centro del punto casuale
      counter++; //incrementa il contatore
      dist=(int)dist;
      if (dist == 1.0) //ciclo if che conta quante volte la distanza è pari al raggio
      d++;
    }
    int N = k-d;
    double PI = 4*(double)N/k;
    System.out.println("Il valore approssimato di PI Greco è "+PI+". Il valore corretto è "+Math.PI);
    System.exit(0);
  }
 
}


Title: Re:stima di pi greco..
Post by: Giuseppo on 27-11-2008, 17:34:58
mi spieghi perchè questi due passaggi?

int N = k-d;
    double PI = 4*(double)N/k;


Title: Re:stima di pi greco..
Post by: Aigor on 27-11-2008, 17:43:24
USATE IL TAG CODE !!!!!!!!!   :-)|

( k dichiarala double !!! )