Dear list, It looks to me that R samples random integers using an intuitive but biased algorithm by going from a random number on [0,1) from the PRNG to a random integer, e.g. https://github.com/wch/r-source/blob/tags/R-3-5-1/src/main/RNG.c#L808
Many other languages use various rejection sampling approaches which provide an unbiased method for sampling, such as in Go, python, and others described here: https://arxiv.org/abs/1805.10941 (I believe the biased algorithm currently used in R is also described there). I'm not an expert in this area, but does it make sense for the R to adopt one of the unbiased random sample algorithms outlined there and used in other languages? Would a patch providing such an algorithm be welcome? What concerns would need to be addressed first? I believe this issue was also raised by Killie & Philip in http://r.789695.n4.nabble.com/Bug-in-sample-td4729483.html, and more recently in https://www.stat.berkeley.edu/~stark/Preprints/r-random-issues.pdf, pointing to the python implementation for comparison: https://github.com/statlab/cryptorandom/blob/master/cryptorandom/cryptorandom.py#L265 Thanks! Carl -- http://carlboettiger.info [[alternative HTML version deleted]] ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel