paulus1969:
Dopo tutta questa discussione, però, adesso il programma scriviamolo e vediamo cosa viene fuori.
Uh, ma, ripeto, il listato del mio post #27 lo avete visto/verificato? :o
Io dopo averlo scritto ovviamente non l'ho più provato dando per scontato che l'OP lo avrebbe fatto, ma se ora parlate del programma ve lo ripropongo: ;D
#define RAGGIO 100
unsigned long x = 0;
unsigned long y = 0;
unsigned long r;
unsigned long r2;
unsigned int tot = 0;
unsigned int hit = 0;
float p;
void setup(){
Serial.begin(9600);
randomSeed(analogRead(0));
// Per evitare di calcolare radici quadrate e rendere
// lo sketch più efficiente, uso il quadrato del raggio
r2 = RAGGIO * RAGGIO;
}
void loop() {
x = random(RAGGIO);
y = random(RAGGIO);
//Serial.print(x);
//Serial.print(",");
//Serial.println(y);
r = x*x + y*y;
++tot;
if ( r <= r2 )
++hit;
p = 4.0 * hit / tot;
Serial.println(p);
delay(100); // 10 campioni al secondo
}