Are some pseudo-random number generators unpredictable?

  • Thread starter Thread starter bbbeard
  • Start date Start date
  • Tags Tags
    Generators
Click For Summary
The discussion centers on the unpredictability of pseudo-random number generators (PRNGs) used in Monte Carlo calculations. PRNGs require a seed to generate sequences, and some, like linear congruential generators, allow prediction of future outputs if the current output is known. The conversation explores whether there are PRNGs that remain unpredictable even with access to a long sequence of outputs, suggesting that certain designs, like the Luscher-Marsaglia-Zaman PRNG, may exhibit this property. It also distinguishes between PRNGs and true random number generators, highlighting that PRNGs are deterministic algorithms while true RNGs derive randomness from physical processes. The inquiry raises questions about the nature of unpredictability in PRNGs and the conditions under which it can be defined.
bbbeard
Messages
192
Reaction score
4
The topic here is pseudo-random number generators (PRNGs), i.e. the kind of algorithm you implement on a computer to do Monte Carlo calculations.

All the PRNGs I know require a "seed" to start a sequence. Given the same seed, the algorithm, which is of course deterministic, will produce the same sequence of numbers.

Some PRNGs have the property that if you know the current output, you can predict what the next output value will be if you know what the algorithm is. I think simple linear congruential generators are in this class.

My question is, are there PRNGs which are not like this? I'm pretty sure there are; I think the Luscher-Marsaglia-Zaman PRNG is, because it actually updates some number of registers N>>1 at each step and only outputs a 32-bit current value. But I think if you know a sufficiently long sequence of outputs, you can reconstruct the contents of the registers, even if you don't know the seed, and then you could predict the next output.

Are some PRNGs intrinsically unpredictable? That is, even given a long sequence of outputs, you cannot predict the next output unless you know the seed? I am imagining some hybrid of RSS encryption and a PRNG -- or maybe mostly just RSS, since it somehow generates random-ish outputs in the course of doing its work. Is there a name for this class of PRNG?

BBB
 
Physics news on Phys.org
What is the difference between a pseudo-random number generator and an actual ideal random number generator?

You get intrinsic unpredictability where you don't know the algorithm - like if you take the lowest place-value number in a rapidly changing natural measurement like wind speed as part of your number generation.

The size of the output you need before you can work out the seed is a measure of the randomness of the generator (iirc).
 
bbbeard said:
Are some PRNGs intrinsically unpredictable? That is, even given a long sequence of outputs, you cannot predict the next output unless you know the seed?

To define the prediction problem precisely, you have to say what we are "given" about the possible PRNG's to consider. If you have an output of size N and all you know is that it comes from a recursive function, then my intuition is that there are infinitely many recursive functions that can produce that output - after all, we aren't given anything to limit the depth of the recursion. As a trivial example, one could have a recursive function that required N seeds to start it.
 
Stephen Tashi said:
To define the prediction problem precisely, you have to say what we are "given" about the possible PRNG's to consider. If you have an output of size N and all you know is that it comes from a recursive function, then my intuition is that there are infinitely many recursive functions that can produce that output - after all, we aren't given anything to limit the depth of the recursion. As a trivial example, one could have a recursive function that required N seeds to start it.

I'm not sure whether the LMZ PRNG is like this, but it would be easy to write a PRNG where the output at each step is a function of the values in N seeded registers, but is not itself stored internally. So one would not be able to "re-seed" the generator using N consecutive outputs.

In my own coding I have abused the LMZ generator by seeding it with a single 32-bit seed, which I used to seed the system call to fill the 24 registers. This means I only generated 2^32 different series of numbers, instead of a potentially much larger space, But for what I was doing that was sufficient.

My question is really just a curiosity about whether there is a difference between linear congruential generators (where the current output tells you all you need to know to predict the future outputs) and other PRNGs. As far as I know, all useful PRNGs have the property that if you know the seed(s), you can reproduce the entire sequence of outputs, and obviously there are PRNGs where knowing the current output let's you predict future outputs without knowing the seeds. But I'm wondering if there are PRNGs where knowing N consecutive outputs is still not enough to predict future outputs, for any N.

BBB
 
Simon Bridge said:
What is the difference between a pseudo-random number generator and an actual ideal random number generator?

A PRNG is an algorithm on a computer. A real random number generator uses some physical process believed to be random to generate numbers -- for example, the radiation-based products offered by http://www.aw-el.com/" . PRNGs can mimic the behavior of real RNGs but all have shortcomings of one sort or another.
 
Last edited by a moderator:
Good - now can you put that answer in terms of intrinsic unpredictability.
 
The standard _A " operator" maps a Null Hypothesis Ho into a decision set { Do not reject:=1 and reject :=0}. In this sense ( HA)_A , makes no sense. Since H0, HA aren't exhaustive, can we find an alternative operator, _A' , so that ( H_A)_A' makes sense? Isn't Pearson Neyman related to this? Hope I'm making sense. Edit: I was motivated by a superficial similarity of the idea with double transposition of matrices M, with ## (M^{T})^{T}=M##, and just wanted to see if it made sense to talk...

Similar threads

  • · Replies 20 ·
Replies
20
Views
2K
  • · Replies 1 ·
Replies
1
Views
2K
Replies
1
Views
2K
Replies
25
Views
4K
  • · Replies 5 ·
Replies
5
Views
2K
Replies
4
Views
1K
  • · Replies 88 ·
3
Replies
88
Views
10K
  • · Replies 13 ·
Replies
13
Views
2K
  • · Replies 6 ·
Replies
6
Views
2K
  • · Replies 10 ·
Replies
10
Views
4K