Using Rule 30 to Generate Pseudorandom Real Numbers

The rule 30 cellular automaton is the engine behind Mathematica's generation of pseudorandom numbers. This Demonstration looks at an oversimplified version of how the central column in the evolution of this automaton can be used to generate pseudorandom real numbers between 0 and 1.
An initial integer seed is chosen (controlled here by a slider), converted to base 2, and then converted to a string of light and dark squares (here 1s get converted to dark squares and 0s to light squares). These squares (shaded blue at the top) are padded on either side with a number of light squares, and rule 30 is evolved from this initial condition. The squares in the central column of this evolution can be regarded as the base-2 decimal expansion of a number between 0 and 1 (again, dark squares correspond to 1s and light squares to 0s). As the initial seed varies over a wide range of integers, the numbers produced by this algorithm appear to be distributed nearly uniformly over the unit interval. Among several differences between this demonstration and random number generators used in practice is that in the latter, the recording of the bits of the number generated does not begin with the first step in the evolution of the cellular automata but only after the cellular automata has been allowed to evolve for a while.

(6 lines omitted)
comments
 
Powered by Wolfram Mathematica
Give us your feedback
Give us your feedback

Source page:




 often  occasionally  never

Note: Please do not include anything you consider confidential or proprietary. Your message and contact information may be shared with the author of any specific Demonstration for which you give feedback, but will not otherwise be published or distributed.
Privacy Policy »

Note: To run this Demonstration you need the free
Mathematica Player
or Mathematica 7+
Download or upgrade to Mathematica Player 7
I already have Mathematica Player or Mathematica 7+