Oppure

Loading
26/10/06 16:03
claude00700
salve gente ho un problema...
dovrei calcolare il p greco nel seguente modo
ho un cerkio (raggio 1/2) inscritto in un quadrato (lato=1).
si lanica una freccetta nel quadrato e bisogna calcolare le provabilità ke la freccetta cada dentro l area del cerkio e quando al di fuori.. tramite un'estrazione di coordinate (x,y) [questo si può fare tramite math.random]
dalla formula:
(n volte dentro il cerkio)/( n volte fuori)= (area cerkio)/ (area quadrato)
dovrei ricavare il valore del p greco

come posso procedere??? nn ho le ideee kiare magari mi date un algoritmo
aaa
26/10/06 19:51
Fr3d3R!K
su questo sito Zani88 ha creato un programma in C che calcola il pi greco...(fortuna che...come dice il mio professore...puzzano tutti di C! :D )
pierotofy.it/pages/sorgenti/browse/15667/
non sarà java...ma era per capire come si faceva no?
:k: :asd:
Ultima modifica effettuata da Fr3d3R!K 26/10/06 19:52
aaa
26/10/06 23:30
pierotofy
Ma p greco non è un valore costante :-?
Il mio blog: piero.dev
27/10/06 12:09
claude00700
ragazzi ho risolto la questione... magari la sistemo e ve la incollo
aaa
27/10/06 18:01
claude00700
/* Calcolare il Pigreco. Abbiamo un quadrato di l uno, all'interto vi è inscritto un cerchio di r=0,5.
Si suppone di lanciare delle freccie sulla figura. Si contano le freccie che cadono dentro il cerchio
e quelle fuori. Il valore del PiGreco sarà dato dalla formula m centri fratto n totale lanic per
raggio al quadrato. */

import javax.swing.* ;

public class giocofreccia
{
    public static void main (String args[])
    {
        double r=0.5, pi=0;
        double m=0, k=0.5, s, t;
        double x, y;
        double X=0.5;
        double Y=0.5;        //n= numero lanci, m=numero centri
        int n=0; //contatore
        String NN;
        int a;
    NN= JOptionPane.showInputDialog("Inserisci un valore per il numero di cicli ke vuoi effettuare";);
        a= Integer.parseInt (NN);    //CONVERSIONE IN INTERO
    while (n<a)    
    {
        x=(Math.random());
        y=(Math.random());
        s=Math.pow(x-X,2);
        t=Math.pow(y-Y,2);
        k=Math.sqrt(s+t);
        if (k<0.5)
        {
            m++;
         n++;
        }
        else if (k>0.5)
        {
            n++;
        }
        
        
    }

        //System.out.println("n è " + n);
        //System.out.println("m " + m);

     pi=(m/(n*(Math.pow(r,2))));

        //System.out.println("finito" + pi);
     JOptionPane.showMessageDialog(
            null, "NUMERO DI LANCI: " + n + "\n NUMERO DI CENTRI: " + m + "\nVALORE PI GRECO: " + pi);
    }
    
        
        

        


}
aaa
14/11/06 10:31
posta10100
non ho capito il motivo per cui devi calcolare pigreco... non puoi usare Math.PI :-?
aaa
16/11/06 18:08
netarrow
bhè pi grego è il rapporto fra circonferenza e diametro, magari il programma è a scopo didattico e ricalcolandolo ogni volta ottiene approsimazioni diverse 8-|

però lui fa il rapporto fra numero centri e il numero totale lanci per il quadrato del raggio
:-| magari è un modo alternativo per calcolarlo, effetivamente se circonferenza è diametro * pigreco è ovvio che pi greco è circonferenza / diametro :D e cmq devi avere già pigreco per calcolarlo in quel modo(se nn sbaglio per trovare il numero hanno srotolato il cerchio misurato e fatto il rapporto)

edit:
Cavolo che stupido sono stato, era più facile di quel che pensassi!

con la formula data all'inizio che è equivalente a

PI*r^2 = m/n

bastava spostare i termini e si otteneva quella formula che usa :k:
Ultima modifica effettuata da netarrow 16/11/06 18:50
aaa
16/11/06 22:04
pierotofy
Oppure ancora più semplicemente...

float pi = 22/7;
Il mio blog: piero.dev