diff options
author | William Carroll <wpcarro@gmail.com> | 2020-11-17T22·28+0000 |
---|---|---|
committer | William Carroll <wpcarro@gmail.com> | 2020-11-17T22·28+0000 |
commit | 751b5327a92f4d53db6253e59c475e4e96cabcb6 (patch) | |
tree | 523d6efc2f8f7e52b665738224129bc76be8dd13 /scratch/facebook/hard/fisher-yates.py | |
parent | 572fb0fe5f8201376740c84a316407b75e96b1c9 (diff) |
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.
Diffstat (limited to 'scratch/facebook/hard/fisher-yates.py')
-rw-r--r-- | scratch/facebook/hard/fisher-yates.py | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/scratch/facebook/hard/fisher-yates.py b/scratch/facebook/hard/fisher-yates.py new file mode 100644 index 000000000000..200d1613ddcb --- /dev/null +++ b/scratch/facebook/hard/fisher-yates.py @@ -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] |