Exemple d'approche impérative en C pour le calcul de PI

--> 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
-->