From 86de063cb1e057a4118c4dbb70e3e92e13189c98 Mon Sep 17 00:00:00 2001 From: Fredrik Robertsen Date: Thu, 26 Mar 2026 18:15:27 +0100 Subject: [PATCH] as3: task 3 --- assignment-3/task3.pdf | Bin 0 -> 24131 bytes assignment-3/task3.typ | 19 +++++++++++++++++++ 2 files changed, 19 insertions(+) create mode 100644 assignment-3/task3.pdf create mode 100644 assignment-3/task3.typ diff --git a/assignment-3/task3.pdf b/assignment-3/task3.pdf new file mode 100644 index 0000000000000000000000000000000000000000..5ad14b185f408b65f9fb5aa9c5d5a13d66d9effa GIT binary patch literal 24131 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 literal 0 HcmV?d00001 diff --git a/assignment-3/task3.typ b/assignment-3/task3.typ new file mode 100644 index 0000000..950deb6 --- /dev/null +++ b/assignment-3/task3.typ @@ -0,0 +1,19 @@ +#import "@preview/catppuccin:1.1.0": catppuccin, flavors +#show: catppuccin.with(flavors.mocha) + +#set text(size: 16pt) + +== task 3 + +the following article explains an algorithm that solves our problem: +#link("https://en.wikipedia.org/wiki/Reservoir_sampling#Simple:_Algorithm_R") + +the main idea is to keep a reservoir of $k$ items, deciding randomly if the $i$-th item you revealed should be added to the reservoir (replacing any item already in there at that slot), otherwise discarding the item. + +the random variable determining the inclusion of the item in the reservoir is given as a random integer between 1 and $i$; if it is less than or equal to $k$, it will fit in the reservoir and then occupies that drawn slot in the reservoir. if it is greater than $k$, it will be discarded. + +this ensures a sampling with a uniform probability distribution of $n$ + +proof: since an item $i$ is included in the reservoir with a probability of $k/i$, the next item $i + 1$ has probability $k/(i + 1)$ of being included in the reservoir. but since processing the $(i + 1)$-th input affects the probability of the previous elements, the probability of $i$ is now $k/i times (1 - 1/(i + 1)) = k/(i + 1)$. but then it isn't actually the case that the probability is different for the previous elements, i.e. the sampling was uniform and independent. + +as the wiki mentions, the algorithm is needlessly slow, but plenty apt for a simple solution to our problem.