Test des paires en série

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 = {999};
n = 3200;
For[i = 2, i <= n, 
        AppendTo[suite1, 
          standardMin[Last[suite1]]]; i++];
suite1 = 4*suite1/2147483647 // N;
paires = Partition[suite1, 2];

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

suite2 = {999};
n = 3200;
For[i = 2, i <= n, 
        AppendTo[suite2, 
          randU[Last[suite2]]]; i++];
suite2 = 4*suite2/2147483648 // N;
paires = Partition[suite2, 2];

Comptage des points dans chaque carré

Show[Graphics[Thread[Point[paires]]], AspectRatio -> 1, 
        GridLines -> {{0, 1, 2, 3, 4}, {0, 1, 2, 3, 4}}];

effectifs = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
          0};
carrés = Floor[paires];
For[i = 1, 
        i ≤ 
          n/2, 
{effectifs[[1 + 
                  carrés[[i, 1]] + 
                  4*carrés[[i, 
                        2]]]]++}; 
i++
];
effectifs

Calcul de Q pour le test du khi-deux

Seuil 5%: 25.00 (voir table)

théorique = {100, 100, 100, 100, 100, 100, 100, 100, 100, 
          100, 100, 100, 100, 100, 100, 100};
observé = effectifs;
diff = 
        observé - théorique;
Q = 0;
For[i = 1, i ≤ 16, 
        Q += (diff[[i]]^2/
              théorique[[i]]); i++];
Print["Q = ", Q // N]