| From: | "Merlin Moncure" <merlin(dot)moncure(at)rcsonline(dot)com> |
|---|---|
| To: | "Tom Lane" <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
| Cc: | <pgsql-hackers-win32(at)postgresql(dot)org> |
| Subject: | Re: win32 random number generator |
| Date: | 2005-08-22 20:59:13 |
| Message-ID: | 6EE64EF3AB31D5448D0007DD34EEB3417DD171@Herge.rcsinc.local |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers-win32 |
> "Merlin Moncure" <merlin(dot)moncure(at)rcsonline(dot)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
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Merlin Moncure | 2005-08-22 21:21:54 | Re: win32 random number generator |
| Previous Message | Tom Lane | 2005-08-22 20:47:46 | Re: win32 random number generator |