[Gllug] Obscure question with rand() in awk, maybe a better way
Daniel Ahrens
dan at prankstersproductions.com
Wed Jun 30 12:58:32 UTC 2004
Random numbers and distributions are a huge topic. If you google for
'mersenne twister' you should find some interesting code like
http://www.math.sci.hiroshima-u.ac.jp/%7Em-mat/eindex.html
That is if you want to go beyond the *nix fortune cookie capability.
regards
Daniel
James Goldwater wrote:
> Hi,
>
> I've been lurking and have picked up quite a few useful tips from this
> group, and hopefully I'll be able to come to the next meeting. But in
> the meantime I've got a silly question, which someone might be able to
> answer for me.
>
> I've got an awk script which should be swapping a line in a file for a
> _random_ line from another file. (It's a stupid quote generator).
> Everything easy works fine (;, but I've got a problem with rand() in
> awk. It seems to be initialized with the unix time to the second, and
> gives completely predicatable results.
>
> Running
>
> BEGIN {
> srand(); # seed to the Unix time
> print int(rand() * 10);
> }
>
> every second, just marches up from 0 to 9. Now, my problem is that I
> want to run this script from a cron job every say X seconds, which means
> that unless I make sure that my quotes file's length doesn't have any
> divisors in common, I'll be getting the same results.
>
> So, question is:
>
> Can I seed using srand() and something like /dev/urandom, or is there an
> altogther simpler way?
>
> Thanks for any ideas you could throw my way,
>
> James.
>
--
Gllug mailing list - Gllug at gllug.org.uk
http://lists.gllug.org.uk/mailman/listinfo/gllug
More information about the GLLUG
mailing list