Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine
 
PerlMonks  

Re: Predict Random Numbers

by theorbtwo (Prior)
on Mar 14, 2002 at 17:29 UTC ( #151748=note: print w/ replies, xml ) Need Help??


in reply to Predict Random Numbers

Looks very interesting; I'll probably play with it a little when I get home.

OTOH, it looked a lot more intersting before I read the code. I was wondering, how do you determinte the a, b, n, and m? Is it possible to write an algo to determinte them for an unknown RNG? Given only M (which seems to be 1<<number of bits of output)? Given nothing? Using srand()? Without changing the seed?


We are using here a powerful strategy of synthesis: wishful thinking. -- The Wizard Book

Update:Changed "N" to "M" in "given only N".


Comment on Re: Predict Random Numbers
Re: Re: Predict Random Numbers
by no_slogan (Deacon) on Mar 14, 2002 at 18:06 UTC
    For drand48(), the manpage tells you the constants a, b, and m. To get n (the number of outputs from int(rand*256) that are used), I used trial and error. There's a mathematical derivation of what values of n are likely to work in another paper, but that doesn't seem to be available online.

    Determining a, b, and m using srand() can be automated in some cases, but it takes a bit of guesswork. If m is a power of 2 and b is small enough, you'll see an obvious pattern in the output of:

    for (0..30) { srand(1<<$_); printf "%030b\n", rand()*(2**30); }
    You can work out a and take a guess at m and b from that -- a is the part that moves, b is the part that stays still, and m is whatever seems big enough to hold it all.

    There are several papers (including the one I mentioned before) on determining those constants using only the output from rand(). Some of them use the L3 algorithm as well.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://151748]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others chilling in the Monastery: (11)
As of 2015-07-07 12:21 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (88 votes), past polls