Présentation de l'algorithme :

Cet algorithme vise à simuler le nombre pi par la méthode de Monte-Carlo en tirant au hasard des points dans un carré de sommets O(0;0), A(0;1), B(1;1) et C(1;0).
La probabilité qu'un point M(x;y) choisi au hasard dans ce carré appartiennent au quart de cercle de centre O et de rayon 1 passant par les points A et B correspond à la probabilité de l'événement "x²+y²<=1". Cette probabilité vaut pi/4.
Dans cet algorithme, on effectue une seule simulation. L'algorithme EstimationPI_MC2 permet d'effectuer plusieurs simulations et d'estimer pi à partir de la moyenne de ces simulations.

Tester l'algorithme :


(cliquer sur le bouton ci-dessus pour lancer ou relancer l'exécution de l'algorithme)

Résultats :

Code de l'algorithme :
1     VARIABLES
2       i EST_DU_TYPE NOMBRE
3       NPTS EST_DU_TYPE NOMBRE
4       N EST_DU_TYPE NOMBRE
5       X EST_DU_TYPE NOMBRE
6       Y EST_DU_TYPE NOMBRE
7       ESTIM_PI EST_DU_TYPE NOMBRE
8       ERR_REL EST_DU_TYPE NOMBRE
9     DEBUT_ALGORITHME
10      //Initialisation des variables N et NTOT.
11      //La variable NTOT correspond au nombre total de points souhaités.
12      //NTOT est un entier naturel non nul.
13      //La variable N correspond au nombre de points situés dans le quart de disque.
14      N PREND_LA_VALEUR 0
15      AFFICHER "Saisir le nombre de points souhaités."
16      LIRE NPTS
17      TANT_QUE (NPTS<1 OU NPTS-floor(NPTS)!=0 OU NPTS>500000) FAIRE
18        DEBUT_TANT_QUE
19        AFFICHER "ATTENTION ! Le nombre de points doit être un entier naturel non nul inférieur ou égal à 500 000 !"
20        LIRE NPTS
21        FIN_TANT_QUE
22      POUR i ALLANT_DE 1 A NPTS
23        DEBUT_POUR
24        X PREND_LA_VALEUR random()
25        Y PREND_LA_VALEUR random()
26        SI (pow(X,2)+pow(Y,2)<=1) ALORS
27          DEBUT_SI
28          N PREND_LA_VALEUR N+1
29          TRACER_POINT (X,Y)
30          FIN_SI
31          SINON
32            DEBUT_SINON
33            TRACER_POINT (X,Y)
34            FIN_SINON
35        FIN_POUR
36      ESTIM_PI PREND_LA_VALEUR 4*N/NPTS
37      AFFICHER "Avec "
38      AFFICHER NPTS
39      AFFICHER " points, la valeur estimée de PI vaut : "
40      AFFICHER ESTIM_PI
41      AFFICHER ", soit une erreur relative d'environ "
42      ERR_REL PREND_LA_VALEUR (ESTIM_PI/Math.PI-1)*100
43      AFFICHER ERR_REL
44      AFFICHER "%."
45    FIN_ALGORITHME