diff --git a/Week02/weighted_keremcagan_ulver.py b/Week02/weighted_keremcagan_ulver.py new file mode 100644 index 00000000..0af39e27 --- /dev/null +++ b/Week02/weighted_keremcagan_ulver.py @@ -0,0 +1,8 @@ +import random +def weighted_srs(data, n, weights, *, with_replacement=False): + if with_replacement: return random.choices(data, weights=weights, k=n) + res, w = [], list(weights) + for _ in range(n): + idx = random.choices(range(len(data)), weights=w)[0] + res.append(data[idx]); w[idx] = 0 + return res