Skip to content

Instantly share code, notes, and snippets.

@jbn
Created December 4, 2019 18:29
Show Gist options
  • Save jbn/0e845461f3e5cfdac2847fc6b51ad4ef to your computer and use it in GitHub Desktop.
Save jbn/0e845461f3e5cfdac2847fc6b51ad4ef to your computer and use it in GitHub Desktop.
import random
def sample(freqs_or_probs, precomputed_max_over_freqs_or_probs=None):
x = freqs_or_probs
n = len(x)
max_value = precomputed_max_over_freqs_or_probs or max(x)
while True:
i = int(n * random.random())
if random.random() < x[i] / max_value:
return i
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment