diff --git a/Week02/weighted_denizumut_sagiroglu.py b/Week02/weighted_denizumut_sagiroglu.py new file mode 100644 index 00000000..29692259 --- /dev/null +++ b/Week02/weighted_denizumut_sagiroglu.py @@ -0,0 +1,9 @@ +import random +def weighted_srs(data, n, weights, with_replacement=False): + if with_replacement or weights: + return random.choices(data, weights=weights, k=n) + pool_d, pool_w, sample = list(data), [1]*len(data), [] + for _ in range(n): + i = random.choices(range(len(pool_d)), weights=pool_w, k=1)[0] + sample.append(pool_d.pop(i)); pool_w.pop(i) + return sample