KISS (algorithm)
![]() | The topic of this article may not meet Wikipedia's general notability guideline. (September 2016) |
KISS (Keep it Simple Stupid) is a family of pseudorandom number generators introduced by George Marsaglia.[1] Starting from 1998 Marsaglia posted on various newsgroups including sci.math, comp.lang.c, comp.lang.fortran and sci.stat.math several versions of the generators. All KISS generators combine three or four independent random number generators with a view to improving the quality of randomness. KISS generators produce 32-bit or 64-bit random integers, from which random floating-point numbers can be constructed if desired. The original 1993 generator is based on the combination of a linear congruential generator and of two linear feedback shift-register generators. It has a period 2^95, good speed and good statistical properties; however, it fails the LinearComplexity test in the Crush and BigCrush tests of the TestU01 suite.[2] A newer version from 1999 is based on a linear congruential generator, a 3-shift linear feedback shift-register and two multiply-with-carry generators. It is 10-20% slower than the 1993 version but has a larger period 2^123 and passes all tests in TestU01. In 2009 Marsaglia presented a version based on 64-bit integers (appropriate for 64-bit processors) which combines a multiply-with-carry generator, a Xorshift generator and a linear congruential generator.[3] It has a period of around 2^250. Concerning the general philosophy of combination generators Marsaglia quipped:[4] The quote from my Keynote Address at the 1984 Computer Science and Statistics: Symposium on the Interface, still applies: "A random number generator is like sex: When it's good, its wonderful; And when it's bad, it's still pretty good." Add to that, in line with my recommendations on combination generators: "And if it's bad, try a twosome or threesome."
References
- ^ Marsaglia, George; Zaman, Arif (1993). "The KISS generator". Technical report, Department of Statistics, Florida State University, Tallahassee, FL, USA.
- ^ L'Ecuyer, Pierre; Simard, Richard (2007). "TestU01: A C Library for Empirical Testing of Random Number Generators". ACM Transactions on Mathematical Software. 33 (4).
- ^ "64-bit KISS RNGs". Feb 28, 2009.
- ^ http://www.ciphersbyritter.com/NEWS4/RANDC.HTM