Commit 7fc633f5 authored by Raymond Hettinger's avatar Raymond Hettinger Committed by Miss Islington (bot)

Add comments regarding speed/space/entropy trade-offs (GH-10885)

parent 17473347
......@@ -333,6 +333,19 @@ class Random(_random.Random):
# preferred since the list takes less space than the
# set and it doesn't suffer from frequent reselections.
# The number of calls to _randbelow() is kept at or near k, the
# theoretical minimum. This is important because running time
# is dominated by _randbelow() and because it extracts the
# least entropy from the underlying random number generators.
# Memory requirements are kept to the smaller of a k-length
# set or an n-length list.
# There are other sampling algorithms that do not require
# auxiliary memory, but they were rejected because they made
# too many calls to _randbelow(), making them slower and
# causing them to eat more entropy than necessary.
if isinstance(population, _Set):
population = tuple(population)
if not isinstance(population, _Sequence):
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment