mirror of
https://github.com/python/cpython.git
synced 2025-08-04 17:08:35 +00:00
SF bug #812202: randint is always even
* Added C coded getrandbits(k) method that runs in linear time. * Call the new method from randrange() for ranges >= 2**53. * Adds a warning for generators not defining getrandbits() whenever they have a call to randrange() with too large of a population.
This commit is contained in:
parent
5c68ef04b7
commit
2f726e9093
5 changed files with 196 additions and 10 deletions
|
@ -84,6 +84,14 @@ Library
|
|||
seed. Modified to match Py2.2 behavior and use fractional seconds so
|
||||
that successive runs are more likely to produce different sequences.
|
||||
|
||||
- random.Random has a new method, getrandbits(k), which returns an int
|
||||
with k random bits. This method is now an optional part of the API
|
||||
for user defined generators. Any generator that defines genrandbits()
|
||||
can now use randrange() for ranges with a length >= 2**53. Formerly,
|
||||
randrange would return only even numbers for ranges that large (see
|
||||
SF bug #812202). Generators that do not define genrandbits() now
|
||||
issue a warning when randrange() is called with a range that large.
|
||||
|
||||
- itertools.izip() with no arguments now returns an empty iterator instead
|
||||
of raising a TypeError exception.
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue