Le test spectral est un test statistique visant à évaluer la qualité d'un générateur de nombres pseudo-aléatoire de type congruentiels linéaires[1]. Ce type a la propriété notable de générer des lignes ou des plans lorsque les triages sont utilisés pour des points du plan ou de l'espace, et toutes les formes sont possibles. Le test spectral vise à mesurer la distance entre ces plans : plus ils sont éloignés, plus le générateur est mauvais[2]. Comme ce test est pensé pour étudier les structures des générateurs congruentiels linéaires.

Représentation en 3D de 100 000 valeurs générées par RANDU. Chaque point est détermine par trois tirages pseudo-aléatoires consécutifs. On voit ainsi que les points se trouvent sur un ensemble de 15 plans de l'espace.

Selon Donald Knuth, il s'agit du test le plus puissant connu, car il peut faire échouer des générateurs satisfaisant à la plupart des tests statistiques courants. La sous-routine IBM RANDU échoue dès le test en 3D[3],[4].


Bien qu'ils passent tous deux le test du chi-2, le premier générateur est moins aléatoire que le second, car l'ensemble des valeurs qu'il génère est moins bien réparti.

Article connexe modifier

Références modifier

  1. K. B. Williams et Jerry Dwyer, « Testing Random Number Generators, Part 2 », Dr. Dobb's Journal,‎ (lire en ligne, consulté le ).
  2. Raj Jain, « Testing Random-Number Generators (Lecture) », sur Washington University Saint Louis (consulté le )
  3. IBM, System/360 Scientific Subroutine Package, Version II, Programmer's Manual, H20-0205-1, 1967, p. 54.
  4. IBM/360 Scientific Subroutine Package (360A-CM-03X) Version III, White Plains, NY, IBM Technical Publications Department, (DOI 10.3247/SL2Soft08.001, lire en ligne), p. 77