<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Jul 22, 2014 at 4:39 PM, Glynn Clements <span dir="ltr"><<a href="mailto:glynn@gclements.plus.com" target="_blank">glynn@gclements.plus.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div class=""><br>
Paulo van Breugel wrote:<br>
<br>
> And it seems to be the default behaviour by python/numpy:<br>
<br>
</div>It is, but ...<br>
<div class=""><br>
>  >>> import numpy as np<br>
>  >>> np.random.random()<br>
> 0.8351426142559701<br>
>  >>> np.random.random()<br>
> 0.4813823441998394<br>
>  >>> np.random.random()<br>
> 0.7279314267025369<br>
<br>
</div>... this example doesn't demonstrate that.</blockquote><div><br></div><div>Good point, on my computer I get:<br><br>>>> import numpy as np<br>>>> np.random.random()<br>0.49727844715398417<br><br>

</div><div>And in different (also freshly started) Python:<br><br>>>> import numpy as np<br>>>> np.random.random()<br>0.2457281014919791<br></div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">

Any PRNG returns different<br>
values for successive calls.<br>
<br></blockquote><div>The problem is that user may not see the difference between between two module calls in GRASS command line and two calls of random() function in Python. When calling GRASS module in Python the difference is even less visible.<br>

<br></div><div>Anyway, the reproducibility would be really nice considering GRASS scientific audience, however are you sure that different systems will give same random number for the same seed? Or do you think about reproducible as "as reproducible as possible, e.g. using the same system if necessary".<br>

</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
The question is whether the PRNG's initial value should autmatically<br>
be seeded from some external source of entropy (e.g. the system<br>
clock), so that the sequence of values differs on different runs.<br>
<br>
In turn, that brings up questions about the quality of the entropy<br>
source. The ANSI C time() function typically only has one second<br>
granularity (indeed, POSIX requires this, as time_t is defined as<br>
seconds since the epoch), which is sufficiently course that successive<br>
runs may get the same seed. Other functions aren't portable, and even<br>
where available, the granularity isn't guaranteed.<br>
<br></blockquote><div>What about time + process id?<br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
My main objection to automatic seeding is that people will inevitably<br>
produce non-repeatable results without even realising it.<br>
<br>
One possible solution would be to automatically add the seed to the<br>
history of any map generated by r.mapcalc (or possibly only those<br>
which use the rand() function). But that would still only help if the<br>
creator either provides access to the generated maps, or the output<br>
from <a href="http://r.info" target="_blank">r.info</a>. Simply providing the commands used and the end result<br>
wouldn't help.<br>
<div class=""><div class="h5"><br>
--<br>
Glynn Clements <<a href="mailto:glynn@gclements.plus.com">glynn@gclements.plus.com</a>><br>
_______________________________________________<br>
grass-dev mailing list<br>
<a href="mailto:grass-dev@lists.osgeo.org">grass-dev@lists.osgeo.org</a><br>
<a href="http://lists.osgeo.org/mailman/listinfo/grass-dev" target="_blank">http://lists.osgeo.org/mailman/listinfo/grass-dev</a><br>
</div></div></blockquote></div><br></div></div>