http://www.perlmonks.org?node_id=803638


in reply to Random numbers are not random enough on Windows

every random number generated was unique. This was expected.

I had a stats teacher that would have everyone write down a coin flip sequence and then he'd explain how he could tell who cheated: not enough repeats. I guess I'd expect to see a few repeats in my sequence of random numbers. Probably not as many as you're seeing... I think there are other problems with the windows PRNG too. Maybe win7 fixed it.

I guess I expected to find some things on CPAN for this, but I didn't -- unless you're willing to use cygwin. Then there seem to be a few choices. Crypt::Random (will this work without the entropy daemon?) and Math::Random::MT::Auto (should I be using this too?) seem fairly interesting.

UPDATE: Ahh, interesting. I didn't understand the issue at all.

-Paul

Replies are listed 'Best First'.
Re^2: Random numbers are not random enough on Windows
by GrandFather (Saint) on Oct 28, 2009 at 10:56 UTC

    The issue the OP experienced was not with the Windows PRNG, but with the PRNG built into Perl. They are quite different animals. The Perl PRNG is a 16 bit primitive PRNG that has been provided by MicroSoft's C run time for pretty much ever. It has long been recognised as a very flawed (some would say 'useless') PRNG, but much code has been written using it that would probably break if it were changed. If you have a serious need for a good PRNG for some application there are plenty of libraries around that will supply the need for various appropriate definitions of 'good'.

    To a fairly large extent there is not a great deal of point in a compiler supplying a 'good' PRNG because there are many areas of compromise in the definition of good for any particular application. Anyone with a serious application for a PRNG will most likely either develop their own, or use library code developed for a similar application.


    True laziness is hard work