On 11/06/12 18:15, Johannes Pfau wrote:
Am Sun, 10 Jun 2012 00:24 +0100
schrieb Andrew Talbot<andrew.tal...@talbotville.com>:

Forgive what may be the unintelligible ramblings of an ignorant
hobbyist, but, if I am not mistaken, the Mersenne Twister
implementation in std.random currently can be seeded only with a
32-bit unsigned integer, which I presume gives it 2^32 starting
points, whereas I believe there should also be an alternative option
to seed it with an array of up to 624 uintS, so that potentially it
can be started in any one of its 19,937 internal states. I may be
wrong, but I believe that to have instant access to enough of the
"state space" to be able to generate a large number of unique random
UUIDs this second seeding option may be necessary.


Could someone who's familiar with RNGs answer this question? This seems
to be important for st.uuid, we should get this right.

In the Boost C++ implementation it certainly accepts a range as input:

  template<class It>
  void seed(It& first, It last)
  {
    int j;
    for(j = 0; j < n && first != last; ++j, ++first)
      x[j] = *first;
    i = n;
    if(first == last && j < n)
      throw std::invalid_argument("mersenne_twister::seed");
  }

Some information on the seeding issue can be found here:
http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/MT2002/emt19937ar.html

Reply via email to