Solve algorithms dealing with randomness

Tonight I learned that random sample where each element in the sampling corpus
has an equal likelihood of being chosen is a brand of algorithms known as
"reservoir sampling".

- Implement random.shuffle(..)
- Implement random.choice(..)

Surprisingly, candidates are expected to encounter problems like this during
interviews.
This commit is contained in:
William Carroll 2020-11-17 22:28:24 +00:00
parent 572fb0fe5f
commit 751b5327a9
2 changed files with 46 additions and 0 deletions

View file

@ -0,0 +1,7 @@
import random
def shuffle(xs):
n = len(xs)
for i in range(n):
j = random.randint(i, n - 1)
xs[i], xs[j] = xs[j], xs[i]