Test du Khi deux

Générateurs à tester

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

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

Test du Standard minimal

Construction d'une liste de 1800 nombres pseudo-aléatoires représentant les lancers d'un dé

Répartition théorique: 300, 300, 300, 300, 300, 300

suite = {999};
n = 1800;
For[i = 2, i <= n, 
        AppendTo[suite, 
          standardMin[Last[suite]]]; i++];
suite = 1 + Floor[6*suite/2147483647];
For[i = 1, i ≤ 6, 
      Print[i, "   ", Count[suite, i]]; i++]

Calcul de Q

Seuil 5% : 11.07 (voir table)

théorique = {300, 300, 300, 300, 300, 
          300};
observé = {};
For[i = 1, i ≤ 6, 
      AppendTo[observé, 
        Count[suite, i]]; i++]
diff = 
        observé - théorique;
Q = 0;
For[i = 1, i ≤ 6, 
        Q += (diff[[i]]^2/
              théorique[[i]]); i++];
Print["Q = ", Q // N]

Construction d'une liste de 1800 nombres pseudo-aléatoires représentant les lancers de deux dés

Répartition théorique: 50, 100, 150, 200, 250, 300, 250, 200, 150, 100, 50

suite1 = {999};
suite2 = {555};
n = 1800;
For[i = 2, i <= n, 
        AppendTo[suite1, 
          standardMin[Last[suite1]]]; i++];
suite1 = 1 + Floor[6*suite1/2147483647];
For[i = 2, i <= n, 
        AppendTo[suite2, 
          standardMin[Last[suite2]]]; i++];
suite2 = 1 + Floor[6*suite2/2147483647];
suite = suite1 + suite2;
For[i = 2, i ≤ 12, 
      Print[i, "   ", Count[suite, i]]; i++]

Calcul de Q

Seuil 5% : 18.31 (voir table)

théorique = {50, 100, 150, 200, 250, 300, 250, 200, 150, 100, 
          50};
observé = {};
For[i = 2, i ≤ 12, 
      AppendTo[observé, 
        Count[suite, i]]; i++]
diff = 
        observé - théorique;
Q = 0;
For[i = 1, i ≤ 11, 
        Q += (diff[[i]]^2/
              théorique[[i]]); i++];
Print["Q = ", Q // N]

Test de RandU

Construction d'une liste de 1800 nombres pseudo-aléatoires représentant les lancers d'un dé

Répartition théorique: 300, 300, 300, 300, 300, 300

suite = {999};
n = 1800;
For[i = 2, i <= n, 
        AppendTo[suite, 
          randU[Last[suite]]]; i++];
suite = 1 + Floor[6*suite/2147483648];
For[i = 1, i ≤ 6, 
      Print[i, "   ", Count[suite, i]]; i++]

Calcul de Q

Seuil 5% : 11.07 (voir table)

théorique = {300, 300, 300, 300, 300, 
          300};
observé = {};
For[i = 1, i ≤ 6, 
      AppendTo[observé, 
        Count[suite, i]]; i++]
diff = 
        observé - théorique;
Q = 0;
For[i = 1, i ≤ 6, 
        Q += (diff[[i]]^2/
              théorique[[i]]); i++];
Print["Q = ", Q // N]

Construction d'une liste de 1800 nombres pseudo-aléatoires représentant les lancers de deux dés

Répartition théorique: 50, 100, 150, 200, 250, 300, 250, 200, 150, 100, 50

suite1 = {999};
suite2 = {555};
n = 1800;
For[i = 2, i <= n, 
        AppendTo[suite1, 
          randU[Last[suite1]]]; i++];
suite1 = 1 + Floor[6*suite1/2147483648];
For[i = 2, i <= n, 
        AppendTo[suite2, 
          randU[Last[suite2]]]; i++];
suite2 = 1 + Floor[6*suite2/2147483648];
suite = suite1 + suite2;
For[i = 2, i ≤ 12, 
      Print[i, "   ", Count[suite, i]]; i++]

Calcul de Q

Seuil 5% : 18.31 (voir table)

théorique = {50, 100, 150, 200, 250, 300, 250, 200, 150, 100, 
          50};
observé = {};
For[i = 2, i ≤ 12, 
      AppendTo[observé, 
        Count[suite, i]]; i++]
diff = 
        observé - théorique;
Q = 0;
For[i = 1, i ≤ 11, 
        Q += (diff[[i]]^2/
              théorique[[i]]); i++];
Print["Q = ", Q // N]