On 02/01/2009 2:45 PM, Stavros Macrakis wrote:
runif appears to give 31 bits of precision, but this isn't mentioned
in the documentation page. The R numeric type supports 53 digits of
precision, and other numeric functions (sin, etc.) give full-precision
results. So I'd think that either runif should give full precision or
its documentation should mention this limitation.
It refers to the .Random.seed page for details, and that page mentions
the limitation to at most 2^32 different values for most of the generators.
#integers
table(runif(10000,-2^30,2^30) %% 1)
0 0.5
4972 5028
Your interval is 2^31 units long, and you're getting values on the
integers and halfway between, so that looks like 2^32 bits, not 2^31.
#natural numbers
table(runif(10000,0,2^31) %% 1)
0 0.5
4956 5044
#fractions
table((r<-runif(10000,0,1)*2^31)-floor(r))
0 0.5
5021 4979
Same here.
Duncan Murdoch
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.