Message246291
While investigating issue 24546, I discovered that at least some versions of Python on 32-bit Linux have a double-rounding bug in multiplication which may lead to an unexpected IndexError in random.choice.
See http://bugs.python.org/issue24546 for additional discussion, but the short version is that due to double-rounding, if random.random returns (1. - 2.**-53), int(i * random.random()) may return 1 for some i >= 2049, and random.choice will then evaluate seq[len(seq)], raising IndexError. |
|
Date |
User |
Action |
Args |
2015-07-05 03:04:00 | steven.daprano | set | recipients:
+ steven.daprano, tim.peters, rhettinger, mark.dickinson, vstinner, r.david.murray, skrah, serhiy.storchaka, Serge Anuchin |
2015-07-05 03:04:00 | steven.daprano | set | messageid: <1436065440.76.0.743831142504.issue24567@psf.upfronthosting.co.za> |
2015-07-05 03:04:00 | steven.daprano | link | issue24567 messages |
2015-07-05 03:03:59 | steven.daprano | create | |
|