<div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Because it would be easier to have something like srand(seed) and later<br>
on rand() instead of managing a list of generated numbers etc. Of<br>
course, providing a list of generated data could be a solution.<br></blockquote><div><br></div><div>I don&#39;t know if this is helpful but you could always write a small function to generate these deterministic &quot;random&quot; numbers within your modules themselves.</div>

<div><br></div><div><meta http-equiv="content-type" content="text/html; charset=utf-8"><a href="http://en.wikipedia.org/wiki/List_of_pseudorandom_number_generators">http://en.wikipedia.org/wiki/List_of_pseudorandom_number_generators</a></div>

<div><br></div><div>As long as the initial conditions remain the same, the generated sets of numbers should be the same. You could give the initial conditions as parameters and generate multiple sets of data for multiple test runs in your modules. I tried this with the simple xorshift algorithm and it generates the same sets as long as the initial condition stays the same. Here&#39;s my silly program below (sorry for the horrible variable naming):</div>

<div><br></div><div><div>#include &lt;stdio.h&gt;</div><div>#include &lt;stdlib.h&gt;</div><div><br></div><div>static unsigned int x = 123456789;</div><div>static unsigned int y = 362436069;</div><div>static unsigned int z = 521288629;</div>

<div>static unsigned int w = 88675123;</div><div><br></div><div>unsigned int xor128(void) {</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>unsigned int t;</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>t = x ^ (x &lt;&lt; 11);</div>

<div><span class="Apple-tab-span" style="white-space:pre">        </span>x = y; y = z; z = w;</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>return w = w ^ (w &gt;&gt; 19) ^ (t ^ (t &gt;&gt; 8));</div><div>

}</div><div><br></div><div>int main(int argc, char *argv[])</div><div>{</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>int i;</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>if (argc &gt; 1) {</div>

<div><span class="Apple-tab-span" style="white-space:pre">                </span>unsigned int j = atoi(argv[1]);</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>if (j != 0) {</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>/* Stick in some variations into the variables */</div>

<div><span class="Apple-tab-span" style="white-space:pre">                        </span>x = j;</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>y = j &lt;&lt; 2;</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>z = j &gt;&gt; 2;</div>

<div><span class="Apple-tab-span" style="white-space:pre">                        </span>w = j &gt;&gt; 3;</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>}</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>}</div>

<div><meta http-equiv="content-type" content="text/html; charset=utf-8"><span class="Apple-tab-span" style="white-space: pre; ">        </span>/* Generate a set of 100 at a time */</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>for (i = 0; i &lt; 100; i++) {</div>

<div><span class="Apple-tab-span" style="white-space:pre">                </span>printf(&quot;%u\n&quot;, xor128());</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>}</div><div>}</div></div><div><br></div><div>Here are the test runs (&quot;nsr&quot; stands for &quot;not so random&quot;!):</div>

<div><div>$ ./nsr 1000 | tail -3</div><div>3972878080</div><div>46840635</div><div>1211846028</div><div>$ ./nsr 1000 | tail -3</div><div>3972878080</div><div>46840635</div><div>1211846028</div><div><br></div><div>$ ./nsr 1001 | tail -3</div>

<div>3176948974</div><div>4245070904</div><div>2954982611</div><div>$ ./nsr 1001 | tail -3</div><div>3176948974</div><div>4245070904</div><div>2954982611</div></div><div><br></div><div>I hope this helps! If not, I had fun trying it out anyway! Good luck!</div>

<div><br></div></div>-- <br>/manohar<br>