Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>Okay, answer #2 ;-)</p> <p>I am going to say ... keep it simple. Just use a "short" seed to prime the MT (imagine that this seed is 2<sup>32</sup> bits for lack of better restriction). This assumes that the the short seed generates "sufficiently distributed" MT starting states (e.g. <code>init_genrand</code> in the code in my other answer, hopefully). This doesn't guarantee an equally distributed starting state but rather goes for "good enough", see below.</p> <p>Each node will use it's own sequence of seeds which are pre-selected (either a list of random seeds which is transmitted or a formula like <code>number_nodes * node_number * iteration</code>). The important thing is that the initial "short" seed <em>will never be re-used across nodes</em>.</p> <p>Each node will then use a MT PRNG initialized with this seed <code>n</code> times where <code>n &lt;&lt;&lt; MT_period / max_value_of_short_seed</code> (<a href="http://www.quadibloc.com/crypto/co4814.htm" rel="nofollow">TT800 is 2<sup>800</sup>-1 and MT19937 is 2<sup>19937</sup>-1</a>, so <code>n</code> can still be a <em>very large</em> number). After <code>n</code> times, the node moves onto the next seed in the chosen list.</p> <p>While I do not (nor can I) provide a "guarantee" that no node will ever have a duplicate sequence at the same time (or at all), here is what <a href="http://developer.amd.com/libraries/acml/onlinehelp/Documents/Using-Different-Seeds.html" rel="nofollow">AMD says about Using Different Seends</a>: (Obviously the initial seeding algorithm plays a role).</p> <blockquote> <blockquote> <p><strong>Of the four methods for creating multiple streams described here, this is the least satisfactory</strong> ... For example, sequences generated from different starting points may overlap if the initial values are not far enough apart. The potential for overlapping sequences is reduced if the period of the generator being used is large. <strong>Although there is no guarantee of the independence of the sequences, due to its extremely large period, using the Mersenne Twister with random starting values is unlikely to lead to problems</strong>, especially if the number of sequences required is small ...</p> </blockquote> </blockquote> <p>Happy coding.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload