Approximation de pi avec une méthode de Monte-Carlo

<< Graphics`MultipleListPlot`

Générateur à congruence linéaire

\(\(standardMin[x_] := 
        Module[{}, 
Mod[16807\ x, 
            2147483647]
];\)\)

Construction d'une liste de n nombres pseudo-aléatoires dans l'intervalle [0,1[ avec le standard minimal

suite1 = {754835};
n = 4000;
For[i = 2, i <= n, 
        AppendTo[suite1, 
          standardMin[Last[suite1]]]; i++];
suite = suite1/2147483647 // N;

Approximation de pi

points = Partition[suite, 2];
nbrPoints = Length[points];
pointsIn = {};
pointsOut = {};
For[i = 1, 
        i ≤ nbrPoints, 
If[
          points[[i, 1]]^2 + points[[i, 2]]^2 < 
            1, 
AppendTo[pointsIn, 
            points[[i]]], 
AppendTo[pointsOut, 
            points[[i]]]]; 
i++];
Print[4*Length[pointsIn]/nbrPoints // N ]

Dessin

MultipleListPlot[pointsIn, pointsOut, 
        SymbolShape -> {PlotSymbol[Box, 1.5], PlotSymbol[Box, 1.5]}, 
        SymbolStyle -> {RGBColor[0.2, 0.8, 0.2], 
            RGBColor[0.9, 0, 0]}, {AspectRatio -> 1, 
          Frame -> True}];