Presentation on theme: "History of Random Number Generators Bob De Vivo Probability and Statistics Summer 2005."— Presentation transcript:
History of Random Number Generators Bob De Vivo Probability and Statistics Summer 2005
Early RNG’s Dice oForerunners were marked disks or bones, used for betting games oEarliest six-sided dice date from around 2750 B.C. oFound in both northern Iraq and India oMarked with pips, possibly because they pre-date numbering systems Playing Cards oUsed in China for gambling games as early as the 7 th century oIntroduced to Europe in the late 1300’s Coins oPopular in ancient Rome, from whence they spread across Europe o~ 1900, English statistician Karl Pearson tossed a coin 24,000 times, resulting in 12,012 heads (f = ) Spinning Wheels oAncient Greeks spun a shield balanced on the point of a spear. The shield was marked into section, and players would bet on where the shield would stop. oEvolved into fairground wheel of fortune, then into roulette
Types of Modern RNG’s “True” random number generators oUnpredictable (in theory), but slow and possibly biased oUsually based on physical processes, which may be microscopic or macroscopic oExamples: Cards, coins, dice, roulette wheels Radioactive decay, thermal noise, photoelectric effect Keyboard stroke timing, lava lamps, fishtank bubbles oMacroscopic processes are subject to Newtonian laws of motion and are therefore deterministic; they appear unpredictable, however, because we cannot determine the initial conditions with sufficient accuracy oRNG’s based on quantum properties are completely unpredictable Pseudo random number generators oUsually based on a mathematical algorithm oFast oSuitable for computers oPredictable, if algorithm and initial state are known oMust repeat eventually, since algorithm has finite state, but period may be long enough to avoid repeating on any conceivable computer within a time span longer than the age of the universe.
John von Neumann Born 1903 in Budapest With Stanislaw Ulam, developed a formal foundation for the Monte Carlo method In 1951, proposed one of the first pseudo-RNG algorithms for use on an electronic computer: Middle-Square Method Start with x 0, n digits long X 1 = middle n or n+1 digits of x 0 2 Example: x 0 = = x 1 = 464 Disadvantage: very sensitive to choice of x 0 ENIAC, completed in 1945
Modern Pseudo-RNG’s Linear congruential generators –Form: x n = a * x n-1 + b (mod M) –Most common type of PRNG in use today –Period depends on M, but can be as long as 10 9 when using 32-bit words –Disadvantage: serial correlation, which means successive numbers are not equidistributed (equally likely to fall anywhere in the range) –Not suitable for Monte Carlo simulations Mersenne Twister –developed in 1997 by Makoto Matsumoto and Takuji Nishimura –Very fast –Negligible serial correlation –Period is − 1 (a Mersenne prime) –Suitable for Monte Carlo, but not cryptography Blum Blum Shub –proposed in 1986 by Lenore Blum, Manuel Blum, and Michael Shub –Not very fast, so poor choice for simulations –Good for cryptography because of the difficulty of finding any non-random patterns through calculation (strong security proof) –Form: x n+1 = (x n ) 2 mod(M), where M is the product of two large primes
Mathematica’s RNG Uses Wolfram rule 30 cellular automaton generator Table for rule 30: Evolution of cells, starting with a single black cell: Central column is chaotic