Spectral test
![](http://upload.wikimedia.org/wikipedia/commons/thumb/3/38/Randu.png/220px-Randu.png)
The spectral test is a statistical test for the quality of a class of pseudorandom number generators (PRNGs), the linear congruential generators (LCGs).[1] LCGs have a property that when plotted in 2 or more dimensions, lines or hyperplanes will form, on which all possible outputs can be found.[2] The spectral test compares the distance between these planes; the further apart they are, the worse the generator is.[3] As this test is devised to study the lattice structures of LCGs, it can not be applied to other families of PRNGs.
According to Donald Knuth,[4] this is by far the most powerful test known, because it can fail LCGs which pass most statistical tests. The IBM subroutine RANDU[5][6] LCG fails in this test for 3 dimensions and above.
![](http://upload.wikimedia.org/wikipedia/commons/thumb/8/83/Spectral_test_of_3x_mod_31.png/300px-Spectral_test_of_3x_mod_31.png)
![](http://upload.wikimedia.org/wikipedia/commons/thumb/0/01/Spectral_test_of_13x_mod_31.png/300px-Spectral_test_of_13x_mod_31.png)
References[]
- ^ Williams, K. B.; Dwyer, Jerry (1 Aug 1996), "Testing Random Number Generators, Part 2", Dr. Dobb's Journal, retrieved 26 Jan 2012.
- ^ Marsaglia, George (September 1968). "Random Numbers Fall Mainly in the Planes" (PDF). PNAS. 61 (1): 25–28. Bibcode:1968PNAS...61...25M. doi:10.1073/pnas.61.1.25. PMC 285899. PMID 16591687.
- ^ Jain, Raj. "Testing Random-Number Generators (Lecture)" (PDF). Washington University Saint Louis. Retrieved 2 December 2016.
- ^ Knuth, Donald E. (1981), The Art of Computer Programming volume 2: Seminumerical algorithms (2nd ed.), Addison-Wesley, p. 89.
- ^ IBM, System/360 Scientific Subroutine Package, Version II, Programmer's Manual, H20-0205-1, 1967, p. 54.
- ^ International Business Machines Corporation (1968). "IBM/360 Scientific Subroutine Package (360A-CM-03X) Version III" (PDF). Stan's Library. White Plains, NY: IBM Technical Publications Department. II: 77. doi:10.3247/SL2Soft08.001. Scientific Application Program H20-0205-3.
- Pseudorandom number generators
- Theoretical computer science stubs