Test des suites croissantes

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,1[ avec le standard minimal

suite1 = {863502};
n = 4000;
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,1[ avec randU

suite2 = {874832};
n = 4000;
For[i = 2, i <= n, 
        AppendTo[suite2, 
          randU[Last[suite2]]]; i++];
suite = suite2;

Test run-up

r = {0, 0, 0, 0, 0, 0};
k = 1;
For[i = 2, 
      i ≤ 
        n, 
{
If[
          suite[[i]] > 
            suite[[i - 1]], k++]; 
If[
          suite[[i]] < 
            suite[[i - 1]], {
If[k > 6, 
              k = 6]; 
r[[k]]++; 
k = 1}
]; 
If[
          i == 
            n, {
If[k > 6, 
              k = 6]; 
r[[k]]++
}
];
}; 
i++]
r

a = {{4529.4, 9044.9, 13568, 18091, 22615, 27892}, {9044.9, 18097, 
            27139, 36187, 45234, 55789}, {13568, 27139, 40721, 54281, 67852, 
            83685}, {18091, 36187, 54281, 72414, 90470, 111580}, {22615, 
            45234, 67852, 90470, 113262, 139476}, {27892, 55789, 83685, 
            111580, 139476, 172860}};
b = {1/6, 5/24, 11/120, 19/720, 29/5040, 
          1/840};
sommeR = 0;
For[i = 1, 
        i ≤ 
          6, {
For[j = 1, 
            j ≤ 
              6, {
sommeR += 
                a[[i, j]]*(r[[i]] - n*b[[i]])*(r[[j]] - 
                      n*b[[j]])
}; 
j++]
}; 
i++
];
sommeR = sommeR/(n - 6)
If[sommeR < 12.59, Print["le test est réussi"], 
      Print["le test est raté"]]