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