On Saturday, 4 August 2012 at 17:02:19 UTC, bearophile wrote:
Ralph Main:

The module std.random documentation doesn't work as per the examples. The example shows getting a random number by the following code does not work:

<code>
// Generate a uniformly-distributed integer in the range [0, 14]
   auto i = uniform(0, 15);
// Generate a uniformly-distributed real in the range [0, 100)
   // using a specific random generator
   Random gen;
   auto r = uniform(0.0L, 100.0L, gen);
</code>

<code>
   // Gets a random number
   int get_random() {
       auto rng = Random(unpredictableSeed);
       auto rn = uniform(0, m_files.length, rng);
       return rn;
   }
</code>

This code works, but it's a bad idea to create a new generator inside getRandom():

get_random is inside of a class. Because of scope problems, I don't think I can put it anywhere else. It would be better if you could create rng as

int rng;
rng = Random(unpredictableSeed);

then you would be able to put it elsewhere.

Ralph

Reply via email to