Random number generation using a 256-state cellular automaton
  Home FAQ Contact Sign in
sci.crypt.random-numbers only
 
Advanced search
POPULAR GROUPS

sci.crypt.random-numbers Profile…
 Up
Random number generation using a 256-state cellular automaton         


Author: oblivio_n
Date: Jan 15, 2007 06:37

Hi everyone,

I developed a 256-state cellular automaton that serves as a random
number generator. It's more than three times faster than the GNU
Scientific Library RNGs I tested (taus, gfsr4, mt19937, and ranlxd1)
and scores very well on the Diehard tests.

It's fast because the algorithm is basically an array lookup with
pointer value updates.

Alas, there is no proof about cycles or such, but the statistical
results so far are very good. Enjoy.

Code and results are here:

http://home.southernct.edu/~pasqualonia1/ca/report.html

Tony Pasqualoni
3 Comments
Re: Random number generation using a 256-state cellular automaton         


Author: Bob Jenkins
Date: Jan 24, 2007 00:23

On Jan 15, 6:37 am, oblivi...@yahoo.com wrote:
> Hi everyone,
>
> I developed a 256-state cellular automaton that serves as a random
> number generator. It's more than three times faster than the GNU
> Scientific Library RNGs I tested (taus, gfsr4, mt19937, and ranlxd1)
> and scores very well on the Diehard tests.
>
> It's fast because the algorithm is basically an array lookup with
> pointer value updates.
>
> Alas, there is no proof about cycles or such, but the statistical
> results so far are very good. Enjoy.
>
> Code and results are here:
>
> http://home.southernct.edu/~pasqualonia1/ca/report.html
>
> Tony Pasqualoni
Show full article (1.40Kb)
2 Comments
Re: Random number generation using a 256-state cellular automaton         


Author: oblivio_n
Date: Jan 25, 2007 10:15

Bob,

Thank you for your feedback. I ran Diehard on 100 million integers that
were generated using a seed value of 2 and the results were good
(overall p-value of 0.809291). If there were such short cycles, I think
Diehard would reflect that, unless I'm misunderstanding something. In
any case, I designed the seed algorithm based on trial and error. Most
likely there are better algorithms.

Tony Pasqualoni

On Jan 24, 3:23 am, "Bob Jenkins" burtleburtle.net> wrote:
> On Jan 15, 6:37 am, oblivi...@yahoo.com wrote:
>
>
>
>> Hi everyone,
>
>> I developed a 256-state cellular automaton that serves...
Show full article (1.93Kb)
1 Comment
Re: Random number generation using a 256-state cellular automaton         


Author: Vend
Date: Jan 26, 2007 01:50

On 25 Gen, 19:15, oblivi...@yahoo.com wrote:
>> More generally,
>> if (cell_a == first_cell) {
>> *cell_a = rule[*cell_a];
>> implies the low byte of 2056*i+2055 will be walking through your rule[]
>> table. That always has a cycle length of 169, or 27, or 4 or 3 or 2 or
>> 1, depending on your seed.

Tony, it's not a matter of seeding I think.
If you apply a permutation on a value, and then keep applying the same
permutation on the results, you'll eventually get back the original
value. As Bob pointed out, that's what your are doing in your algorithm
with the first cell.
Perhaps it would be better to make the cell list cyclic, that is, to
add the value of the last cell to the first cell.
no comments

RELATED THREADS
SubjectArticles qty Group
Re: [help] come faccio a trovare la miglior tariffa cellulare italiano verso cellulare tedesco....it.tlc.gestori.tre ·