Tirages=tirage_reel(10000,0,1);// Tirages de 10000 nombres au hasard dans [0,1]. p=5/6-1/7; afficher('La valeur exacte de p est '+string(p)); C=0;// Initialisation du compteur des réalisations de A. Frequences=[];// Initialisation du vecteur-ligne des fréquences. for i=1:10000 if (1/7<=Tirages(1,i))&(Tirages(1,i)<=5/6) then C=C+1;// Si A se réalise, le compteur augmente de 1. end; Frequences=[Frequences,C/i]; end; scf(0);// Ouverture d'une fenêtre graphique. clf(0);// Nettoyage de cette fenêtre. plot([0,10000],[p,p],'r');// Ligne horizontale d'ordonnée p. plot(Frequences);// Tracé de la ligne polygonale des fréquences, en bleu (par défaut). Il est sous-entendu que les abscisses varient de 1 à 10000 avec le pas 1. afficher('La valeur approchée de p par les fréquences est '+string(Frequences(1,10000))); scf(1);// Ouverture d'une deuxième fenêtre. clf(1); plot([0,10000],[p,p],'r'); plot(Frequences,'b+');// croix bleue pour chaque point de coordonnées (i, frequence après le ième tirage). Nous obtenons un nuage de points au lieu d'une ligne polygonale. La figure 3 représente la fin du nuage après plusieurs grossissements. frequences=Frequences(1,400:400:10000);// Extraction des fréquences de 400 en 400 tirages. scf(2);// Ouverture d'une fenêtre graphique. clf(2); a=gca();a.data_bounds=[-0.1,-0.1;25.2,1.1];// à ignorer : réglage du graphe. plot([0,25],[p,p],'r'); plot(frequences,'b*');// Chaque point est une astérisque bleue.