From 46b548dff7e07444f7c9daf51ca0769d58ab2f1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kerem=20=C3=87a=C4=9Fan=20=C3=9Clver?= Date: Thu, 12 Mar 2026 17:42:38 +0300 Subject: [PATCH 1/3] Add weighted sampling function to weighted_keremcagan_ulver.py --- Week02/weighted_keremcagan_ulver.py | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 Week02/weighted_keremcagan_ulver.py diff --git a/Week02/weighted_keremcagan_ulver.py b/Week02/weighted_keremcagan_ulver.py new file mode 100644 index 00000000..21e37043 --- /dev/null +++ b/Week02/weighted_keremcagan_ulver.py @@ -0,0 +1,10 @@ +import random + +def weighted_srs(data, n, weights, with_replacement): + 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 From 49ec53e15effe44e8b5c958a48bf89e488aa7ef3 Mon Sep 17 00:00:00 2001 From: Bora Canbula Date: Fri, 13 Mar 2026 10:22:11 +0300 Subject: [PATCH 2/3] Improve code readability by adding a blank line Added a blank line for better code readability. --- Week02/weighted_keremcagan_ulver.py | 1 + 1 file changed, 1 insertion(+) diff --git a/Week02/weighted_keremcagan_ulver.py b/Week02/weighted_keremcagan_ulver.py index 21e37043..76eea62b 100644 --- a/Week02/weighted_keremcagan_ulver.py +++ b/Week02/weighted_keremcagan_ulver.py @@ -1,5 +1,6 @@ import random + def weighted_srs(data, n, weights, with_replacement): if with_replacement: return random.choices(data, weights=weights, k=n) res, w = [], list(weights) From 700c7b1c418b4e2295daabdc0a5f0d520273ac3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kerem=20=C3=87a=C4=9Fan=20=C3=9Clver?= Date: Sat, 14 Mar 2026 10:32:04 +0300 Subject: [PATCH 3/3] Refactor weighted_srs function to use keyword arguments --- Week02/weighted_keremcagan_ulver.py | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/Week02/weighted_keremcagan_ulver.py b/Week02/weighted_keremcagan_ulver.py index 76eea62b..0af39e27 100644 --- a/Week02/weighted_keremcagan_ulver.py +++ b/Week02/weighted_keremcagan_ulver.py @@ -1,11 +1,8 @@ import random - - -def weighted_srs(data, n, weights, with_replacement): +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 + res.append(data[idx]); w[idx] = 0 return res