From d7e84236606689731d460469e4497ae1f2128d4b Mon Sep 17 00:00:00 2001 From: sedaozkaya <155262567+sedaozkaya@users.noreply.github.com> Date: Fri, 13 Mar 2026 09:59:18 +0300 Subject: [PATCH] Add weighted sampling function with optional replacement --- Week02/weighted_sedasengul_ozkaya.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 Week02/weighted_sedasengul_ozkaya.py 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