Re: win32 random number generator - Mailing list pgsql-hackers-win32

From Merlin Moncure
Subject Re: win32 random number generator
Date
Msg-id 6EE64EF3AB31D5448D0007DD34EEB3417DD171@Herge.rcsinc.local
Whole thread Raw
In response to win32 random number generator  ("Merlin Moncure" <merlin.moncure@rcsonline.com>)
List pgsql-hackers-win32
> "Merlin Moncure" <merlin.moncure@rcsonline.com> writes:
> > The windows random number of generator (a port of lrand48 in
random.c)
> > seems a little weak.  It seems to only offer about 16 bits of
precision.
> > Maybe there is a bug in the implementation?
>
> > esp=# select count(*)  from (select distinct random() from
> > generate_series(1,1000000)) q;
> >  count
> > -------
> >  65559
> > (1 row)
>
> That's pretty awful, all right.  I get numbers like this on two
> different Unix machines:

I'll research a fix.  Here's a clearer picture of the problem:

select distinct (random()::numeric(10,8)) * 65536 from
generate_series(1,1000000);

esp=# select distinct (random() * 65536)::numeric(15,8) from
generate_series(1,1000000);
    numeric
----------------
     0.00003052
     1.00003052
     2.00003052
     3.00003052
     4.00003052
[...]

oops! :)

Merlin

pgsql-hackers-win32 by date:

Previous
From: Tom Lane
Date:
Subject: Re: win32 random number generator
Next
From: "Merlin Moncure"
Date:
Subject: Re: win32 random number generator