Run test

Générateurs à tester

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

\(\(randU[x_] := 
        Module[{}, 
Mod[65539\ x, 
            2147483648]
];\)\)

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

suite1 = {999};
n = 100;
For[i = 2, i <= n, 
        AppendTo[suite1, 
          standardMin[Last[suite1]]]; i++];
suite = suite1;

Construction d'une liste de n nombres pseudo-aléatoires dans l'intervalle [0,m[ avec randU

suite2 = {999};
n = 100;
For[i = 2, i <= n, 
        AppendTo[suite2, 
          randU[Last[suite2]]]; i++];
suite = suite1;

Run test

long = Length[suite];
r = 0;
précédent = 
        suite[[1]];
signeAvant = 0;
For[i = 2, 
      i < long, {
signe = 
          Sign[suite[[i]] - suite[[i - 1]]]; 
If[
          signe ≠ 
            signeAvant, r++]; 
signeAvant = 
          signe
}; 
i++
]
moyenneThéorique = (2 n - 1)/3;
VarianceThéorique = (16 n - 29)/
          90;
Print["R=", r, "    E(R)=", 
        moyenneThéorique // N, "    Var(R)=", 
        VarianceThéorique // N];
z = (r - moyenneThéorique)/
          Sqrt[VarianceThéorique];
Print["z=", z // N];
If[Abs[z] < 1.96, Print["Test réussi"], 
      Print["Test raté"]]

Graphique

points = {{1, 0}};
y = 0;
long = Length[suite];
r = 0;
précédent = 
        suite[[1]];
For[i = 2, 
        i < long, {
signe = 
            Sign[suite[[i]] - suite[[i - 1]]]; 
y += 
            signe; 
AppendTo[
            points, {i, 
              y}]
}; 
i++
];
ListPlot[points, PlotJoined -> True];