KISS (algorithm)
KISS (Keep it Simple Stupid) is a family of pseudorandom number generators introduced by George Marsaglia[1]. Starting from 1998 Marsaglia posted on variousnewsgroups 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. In their original form 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.
- ^ 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.