Talk:Pick random element

From Rosetta Code
Revision as of 22:48, 26 August 2017 by rosettacode>Gerard Schildberger (added a "talk" section header (for when there are more talk sections to be added later).)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

task clarification

The task should clarify if the elements should be taken at random with equal probability (that is, discrete uniform distribution, insofar as the underlying pseudorandom generator allows this). It seems obvious, but it's not stated, and if so, there are wrong entries in the page.

For instance, the C program does not yield a uniform distribution. A correct solution is explained in the accepted answer to this Stack Overflow question: How to generate a random number from within a range. It describes a form of rejection sampling, and one would expect a similar approach in a correct implementation. For instance, Python does this for the random.randint function.

The same bad C code is reused in the Loops/Break task, and I fear many could use the Rosetta Code program as is without suspecting a problem.

Eoraptor (talk) 22:26, 26 August 2017 (UTC)