--> cat pi.c
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
static double f(double x) { return sqrt((double)1-x*x);}
static int dedans(){
double u, v;
u = (double)rand()/(double) RAND_MAX;
v = (double)rand()/(double) RAND_MAX;
return (v <= f(u)) ? 1 : 0;
}
static int lancers(int n){
int i, score = 0;
for (i = 0; i < n; i++) score += dedans();
return score;
}
main(int argc, char *argv[]) {
int score;
int nbLancers = atoi(argv[1]); // nombre de lancers
double pi;
srand(time(NULL)); // initialisation du générateur de nombres */
score = lancers(nbLancers);
pi = 4 * ((double)score / nbLancers);
printf("PI = %f\n", pi);
}
--> gcc pi.c -lm -o pi
--> ./pi 1000000
PI = 3.141344
-->
|