Next: , Previous: Round Function, Up: General Functions


10.2.4 The Cliff Random Number Generator

The Cliff random number generator is a very simple random number generator that “passes the noise sphere test for randomness by showing no structure.” It is easily programmed, in less than 10 lines of awk code:

     
     # cliff_rand.awk --- generate Cliff random numbers
     
     
     
     BEGIN { _cliff_seed = 0.1 }
     
     function cliff_rand()
     {
         _cliff_seed = (100 * log(_cliff_seed)) % 1
         if (_cliff_seed < 0)
             _cliff_seed = - _cliff_seed
         return _cliff_seed
     }
     

This algorithm requires an initial “seed” of 0.1. Each new value uses the current seed as input for the calculation. If the built-in rand() function (see Numeric Functions) isn't random enough, you might try using this function instead.