vault backup: 2025-05-09 12:17:48

This commit is contained in:
arc 2025-05-09 12:17:48 -06:00
parent bff7640d0a
commit c80bacb2fc

View File

@ -17,4 +17,20 @@ Arithmetic coding works by taking a stream of data, and converting it into an in
For example, the probability of a coin flip resulting in tails is 50%, and the probability of a coin flip resulting in heads is 50%. The probability of a coin flip resulting in heads *or* tails is %100. For example, the probability of a coin flip resulting in tails is 50%, and the probability of a coin flip resulting in heads is 50%. The probability of a coin flip resulting in heads *or* tails is %100.
If we wanted to keep track of the result of a series of coin flips, this could be done by subdividing a range. If the coin flip is between $0$ and $0.5$, then we know that the first flip must If we wanted to keep track of the result of a series of coin flips, this could be done by subdividing a range. If the coin flip is between $0$ and $0.5$, then we know that the first flip must have been tails.
If the coin flip is between $0.5$ and $1$, then we know that the first flip must have been heads.
This subdivision process can be repeated infinitely to store an infinite number of coin flips by dividing each range again.
To store two coin flips, you might have the first subdivision represent the outcome of the first coin flip, and the second subdivision represent the outcome of the second coin flip:
| Range | Result |
| ------------- | ------------ |
| $0.00 - 0.25$ | Tails, Tails |
| $0.25 - 0.5$ | Tails, Heads |
| $0.50 - 0.75$ | Heads, Tails |
| $0.75 - 1.00$ | Heads, Heads |
Imagine a situation where we want to store the coin flip *Heads, Heads, Tails*.
1. First we subdivide the range by the probability of each event happening. The probability of each is 50%, so that's simple.
2. We know that the r