On Thu, Jun 7, 2018 at 2:14 PM, Steven D'Aprano <steve+comp.lang.pyt...@pearwood.info> wrote: > On Sat, 02 Jun 2018 21:02:14 +1000, Chris Angelico wrote: > >> Point of curiosity: Why "> 0.5"? > > No particular reason, I just happened to hit that key and then copied and > pasted the line into the next one.
Hah! The simplicity of it. >> Normally when I want a fractional >> chance, I write the comparison the other way: "random.random() < 0.5" >> has exactly a 50% chance of occurring (presuming that random.random() >> follows its correct documented distribution). I've no idea what the >> probability of random.random() returning exactly 0.5 is > > Neither do I. But I expect that "exactly 50% chance" is only > approximately true :-) Oh, I have no doubt about that. (Though as Gregory says, the uniformity is based on the PRNG more than on any enumeration of floats. There are probably floating-point values between 0.0 and 1.0 that can never actually be returned.) > So given that our mathematically pure(ish) probability of 0.5 for the > reals has to be mapped in some way to a finite number of floats, I > wouldn't want to categorically say that that the probability remains > *precisely* one half. But if it were (let's say) 1 ULP greater or less > than one half, would we even know? > > 0.5 - 1 ULP = 0.49999999999999994 > > 0.5 + 1 ULP = 0.5000000000000001 > > > I would love to see the statistical experiment that could distinguish > those two probabilities from exactly 1/2 to even a 90% confidence > level :-) LOL, no kidding. How many RNG rolls would you need before you could even distinguish between 50-50 and 49-51% chance? How many people have done any sort of statistical analysis even that accurate? ChrisA -- https://mail.python.org/mailman/listinfo/python-list