Search All of the Math Forum:

Views expressed in these public forums are not endorsed by NCTM or The Math Forum.

Notice: We are no longer accepting new posts, but the forums will continue to be readable.

Topic: Multiple independent random number streams cannot be implemented.
Replies: 3   Last Post: Mar 16, 2013 3:13 AM

 Messages: [ Previous | Next ]
 Joseph Gwinn Posts: 114 Registered: 2/23/05
Re: Multiple independent random number streams cannot be implemented.
Posted: Mar 15, 2013 1:46 AM

In article <khsbbv\$36f\$1@smc.vnet.net>, Roger Wilson
<rogerhw999@gmail.com> wrote:

> Hopefully the title is enough of a red flag for someone to try to prove me
> wrong.
>
> I want to implement two functions; lets call them f and g so that they both
> return random numbers. For example...
>
> f[]:=RandomReal[];
> g[]:=RandomReal[];
>
> However I want f and g to return the same number when they're called for the
> nth time. So the first call to f is always the same number and the first
> call to g is always the same number.
>
> In the above case (on my machine)...
> SeedRandom[1]; {f[], g[]} gives {0.168697, 0.113119}
>
> and of course..
> SeedRandom[1]; {g[], f[]} gives the same {0.817389, 0.11142}
>
> Essentially I want f and g to to be independent random sources.
>
> It is possible to localize the random number generators using BlockRandom but
> I do not see how that helps me in this case. BlockRandom localizes the state
> of the random number generators within the block where as I want to localize them
> into the symbol names.

The problem is that Random has internal state, so for independence you
need multiple independent sets of internal state.

So f and g need to be in different BlockRandom domains.

Joe Gwinn

Date Subject Author
3/14/13 Roger Wilson
3/15/13 Vince Virgilio
3/15/13 Joseph Gwinn
3/16/13 Roger Wilson