Add files via upload

This commit is contained in:
Peter Norvig authored and GitHub committed 2024-05-07 14:27:44 -07:00
1 parent f77a47a685
commit 97329053b3
1 file changed
+185 -182
+185 -182
View File
@@ -13,23 +13,33 @@
" \n",
"*You are playing a game where a merchant has a stockpile of bags for sale. Each bag contains an unknown number of diamonds. You can **buy** a randomly selected bag for 12 coins, look in the bag to see how many diamonds there are, and immediately decide whether to **keep it**, or **sell it back** for 11 coins. You can also (as many times as you want and at no cost) **peek** at a random bag and count the diamonds, without the option to buy. What is a good **strategy** for **maximizing** the number of diamonds in the bags you keep?*\n",
" \n",
"In this notebook I solve the problem and along the way demonstrate:\n",
"In this notebook I solve the problem and along the way demonstrate three things:\n",
"- How to reason with probability.\n",
"- How to compute the optimal strategy for a game like this.\n",
"- How to use data visualizations to better understand the results.\n",
" \n",
"# The main concepts\n",
" \n",
"- **Strategy**: In general, a strategy for a game is a policy for choosing an action, in each possible **situation**. \n",
"- **Strategy**: In general, a **strategy** for a game is a policy for choosing an **action**, in each possible **situation**. \n",
"- **Actions**: The actions are to **peek** at or **buy** a bag, and after buying to **keep** the bag or **sell** it back, and finally to **stop** the game. \n",
"- **Situations**: A situation consists of (1) the number of coins you have, (2) if you just bought a bag, the number of diamonds in it, and (3) what you have learned about the distribution of diamonds from peeking. The situation does not include the number of diamonds you have already bought, because that information is irrelevant to what your best strategy should be; you are always trying to get more diamonds, regardless of how many you already have.\n",
"- **Good strategy**: Here's what I think a good strategy should do:\n",
" - **Use the coins**: The goal is to maximize diamonds, not coins, so don't **stop** until you have 11 or fewer coins (not enough to buy a bag). With 12 coins, buy a bag and keep it no matter what, because selling it back won't give you enough coins to buy another bag.\n",
" - **Peek first**: If you're going to do *K* peeks eventually, it is always better to do all *K* peeks before any buys, so they can inform your future keep/sell choices. This is because peeks are free. If peeks had a cost, a good strategy would consider peeks that are contingent on the result of previous peeks and buys. Once we accept the \"use the coins\" and \"peek first\" ideas, the remaining action choices are just **keep** or **sell**.\n",
" - **Maximize expected diamonds**: With 13 coins, buy a bag. Suppose it has *d* diamonds. Keep it if you think *d* is more than what you'd expect to get from selling it back and buying a different bag. With 14 or more you have to think ahead, considering the value of keeping or selling on this turn as well as on subsequent turns. No strategy can *guarantee* a maximal number of diamonds, because the number you get depends in part on random luck of the draw. Instead of a guarantee, we can evaluate a strategy by its [**expected value**](https://en.wikipedia.org/wiki/Expected_value): the expected number of diamonds obtained starting from a given situation, averaged over all possible random selections of bags from the stockpile. \n",
"- **Probability distribution**: Bags can be represented as a collection of integer diamond counts: which counts are possible, and how often did each occur. This is called a [**discrete probability distribution**](https://en.wikipedia.org/wiki/Probability_distribution#Discrete_probability_distribution).\n",
"- **Stockpile**: By default, I'll say a stockpile is 10,000 bags with mean 100 diamonds per bag.\n",
"- **Peeks**: By default, a player peeks at 1,000 bags. (That should be plenty, but I'll test to make sure.)\n",
"- **Situations**: A situation consists of:\n",
" 1) The number of coins you have.\n",
" 2) The number of diamonds in the bag you just bought. \n",
" 3) What you have learned about the distribution of diamonds from peeking. \n",
" - The situation does **not** include the number of diamonds you have already bought, because that information is irrelevant to what your best strategy should be; you are always trying to get more diamonds, regardless of how many you already have.\n",
"- **Stockpile**: By default, I'll say a stockpile is 1,000 bags with mean 100 diamonds per bag.\n",
"- **Peeks**: By default, a player peeks at 100 bags. (That should be plenty, but I'll test to make sure.)\n",
"- **Probability distribution**: A collection of bags can be represented as a dict of integer diamond counts: which counts are possible, and how often did each occur. \n",
" \n",
"# Good Strategy\n",
"\n",
"Here's what I think a good strategy should do:\n",
"- **Use the coins**: The goal is to maximize diamonds, not coins, so don't **stop** if you have enough coins to buy a bag. Also, don't **sell** a bag back if that would leave you with not enough coins to buy another bag.\n",
"- **Peek first**: If you're going to do a certain number of **peeks** eventually, it is always better to do all the peeks before any buys, so they can inform your future keep/sell choices. This is because peeks are free. If peeks had a cost, a good strategy would consider peeks that are contingent on the result of previous peeks and buys. \n",
"- **Keep or sell**: Once we accept the \"use the coins\" and \"peek first\" ideas, the remaining action choices are just **keep** or **sell**.\n",
"- **Maximize expected value of diamonds**: With 13 coins, buy a bag. Suppose it has *d* diamonds. Keep it if you think *d* is more than what you'd expect to get from selling it back and buying a different bag. With 14 or more you have to think ahead, considering the value of keeping or selling on this turn as well as on subsequent turns. No strategy can *guarantee* a maximal number of diamonds, because the number you get depends in part on random luck of the draw. Instead of a guarantee, we can evaluate a strategy by its [**expected value**](https://en.wikipedia.org/wiki/Expected_value): the expected value of the number of diamonds obtained, starting from a given situation, averaged over all possible random selections of bags from the stockpile.\n",
"- **Expected value is expected number**: We will assume that the expected *value* of the diamonds is the expected *number* of the diamonds. (This isn't necessarily so. Suppose that later in the game there was an important thing you could do if you have 100 diamonds, but not if you have less. Then the value of 100 diamonds is, say, twice the value of 99 diamonds, not 1% more. But we aren't given any threshold values like 100, so we will assume that each additional diamond is equally valuable.)\n",
"\n",
" \n",
"# Preliminaries\n",
" \n",
@@ -43,17 +53,17 @@
"metadata": {},
"outputs": [],
"source": [
"import functools\n",
"import matplotlib.pyplot as plt\n",
"import random\n",
"from typing import *\n",
"from statistics import mean, stdev\n",
"import matplotlib.pyplot as plt\n",
"import functools\n",
"import random\n",
"\n",
"BUY = 12 # How many coins a bag costs\n",
"SELL = 11 # How many coins you get from selling a bag back\n",
"MEAN = 100 # Average number of diamonds in a bag\n",
"N = 10_000 # Default number of bags in the merchant's stockpile\n",
"K = 1_000 # Default number of peeks at the stockpile\n",
"BAGS = 1000 # Default number of bags in the merchant's stockpile\n",
"PEEKS = 100 # Default number of peeks at the stockpile\n",
"\n",
"cache = functools.lru_cache(None) # Decorator\n",
"\n",
@@ -71,10 +81,11 @@
"- The merchant's stockpile of bags.\n",
"- The bags that the player has peeked at.\n",
"\n",
"In both cases we need to know the number of diamonds in each bag, so essentially we want to represent a collection of integers, and how often each of those integers appears. I implement this with the class `ProbDist`, a subclass of Python's `Counter` class, that works as follows:\n",
"- `P = ProbDist([100, 101, 100])` (or `P = ProbDist({100: 2, 101: 1})`) makes a distribution `P` with 3 samples.\n",
"- `P(d)` gives the *probability* of `d` diamonds (e.g. `P(100) == 2/3`).\n",
"- `P[d]` gives the *count* of `d` diamonds (e.g. `P[100] == 2`).\n",
"In both cases we need to know the number of diamonds in each bag–we want to represent a collection of integers, and how often each of those integers appears. This is called a [**discrete probability distribution**](https://en.wikipedia.org/wiki/Probability_distribution#Discrete_probability_distribution). I implement this with the class `ProbDist`, a subclass of Python's `Counter` class, that works as follows:\n",
"- `P = ProbDist([[108, 92, 108, 100, 92])` makes a distribution `P` with 5 samples.\n",
"- `P = ProbDist({108: 2, 92: 2, 100: 1})` makes the same distribution in a different way.\n",
"- `P(d)` gives the *probability* of `d` diamonds (e.g. `P(108) == 2/5`).\n",
"- `P[d]` gives the *count* of `d` diamonds (e.g. `P[108] == 2`).\n",
"- `P` is *hashable*, so that it can be passed to functions with a `cache` decorator. Caching is crucial for efficiency.\n",
"- The attributes `P.n, P.μ, P.σ` give the total count, mean, and standard deviation of the values in `P`, respectively.\n",
"- The `__str__` method gives an informative description of the distribution, including a descriptive `name`.\n"
@@ -88,17 +99,20 @@
"outputs": [],
"source": [
"class Hashable:\n",
" \"\"\"A mixin that hashes objects based on their identity.\"\"\"\n",
" \"\"\"A mixin that hashes objects based on their identity, `id(self)`.\"\"\"\n",
" def __hash__(self): return id(self)\n",
" def __eq__(self, other): return self is other\n",
"\n",
"class ProbDist(Hashable, Counter):\n",
" \"\"\"A discrete probability distribution, mapping values to frequencies.\"\"\"\n",
" def __init__(self, samples: Union[Iterable, Mapping], name='ProbDist'):\n",
" \"`samples` can be either an iterable of values, or a {val: count} mapping.\"\n",
" \"`samples` can be either an iterable of values, or a {value: count} mapping.\"\n",
" super().__init__(samples)\n",
" values = list(self.elements())\n",
" self.__dict__.update(μ=mean(values), σ=stdev(values), n=len(values), name=name)\n",
" self.μ = mean(values)\n",
" self.σ = stdev(values)\n",
" self.n = len(values)\n",
" self.name = name\n",
" def __call__(self, d) -> float: return self[d] / self.n\n",
" def __str__(self) -> str: return f'{self.name}[μ={self.μ:.1f}, σ={self.σ:.1f}, n={self.n:,d}]'"
]
@@ -135,7 +149,7 @@
"id": "bc29b4d5",
"metadata": {},
"source": [
"I will define the function `normal` to create a stockpile of bags that will have a roughly normal (Gaussian) distribution. Then I will define `peek` to peek at some of the bags in the stockpile:"
"I will define the function `normal` to create a stockpile of bags that will have a roughly normal (Gaussian) distribution. Then I will define `peek` to peek at some of the bags in a stockpile:"
]
},
{
@@ -145,14 +159,14 @@
"metadata": {},
"outputs": [],
"source": [
"def normal(σ, μ=MEAN, n=N) -> ProbDist:\n",
" \"\"\"A ProbDist of `n` integers from a Normal distribution with mean `μ` and standard deviation `σ`.\"\"\"\n",
"def normal(σ, μ=MEAN, n=BAGS) -> ProbDist:\n",
" \"\"\"A ProbDist of `n` integers sampled from a Normal distribution with mean `μ` and standard deviation `σ`.\"\"\"\n",
" values = [max(0, round(random.gauss(μ, σ))) for _ in range(n)]\n",
" return ProbDist(values, 'normal')\n",
"\n",
"def peek(stockpile: ProbDist, k=K) -> ProbDist:\n",
" \"\"\"A ProbDist formed by peeking at k values sampled randomly from stockpile.\"\"\"\n",
" values = random.choices(list(stockpile.elements()), k=k)\n",
"def peek(stockpile: ProbDist, peeks=PEEKS) -> ProbDist:\n",
" \"\"\"A ProbDist formed by peeking at `peeks` values sampled randomly from stockpile.\"\"\"\n",
" values = random.choices(list(stockpile), list(stockpile.values()), k=peeks)\n",
" return ProbDist(values, stockpile.name + '_peek')"
]
},
@@ -161,23 +175,23 @@
"id": "07b5c3b6-b3e2-444e-b6cb-5dee7e6e2fd8",
"metadata": {},
"source": [
"We see that a `peek` at 1,000 bags does a good job of capturing the statistics of a stockpile:"
"We see that a `peek` at 100 bags does a good job of capturing the statistics of a stockpile:"
]
},
{
"cell_type": "code",
"execution_count": 40,
"execution_count": 5,
"id": "e864cd55-5c9c-46a5-b006-10de35f25d6e",
"metadata": {},
"outputs": [],
"source": [
"stock1 = normal(σ=1)\n",
"peek1 = peek(stock1)"
"peek1 = peek(stock1, peeks=100)"
]
},
{
"cell_type": "code",
"execution_count": 41,
"execution_count": 6,
"id": "5bb94ae2-8c73-43b4-8431-036572b6a3d7",
"metadata": {},
"outputs": [
@@ -185,7 +199,7 @@
"name": "stdout",
"output_type": "stream",
"text": [
"normal[μ=100.0, σ=1.0, n=10,000]\n"
"normal[μ=100.0, σ=1.1, n=1,000]\n"
]
}
],
@@ -195,7 +209,7 @@
},
{
"cell_type": "code",
"execution_count": 42,
"execution_count": 7,
"id": "5259d068-a6b1-4277-a8e6-eed5c3239186",
"metadata": {},
"outputs": [
@@ -203,7 +217,7 @@
"name": "stdout",
"output_type": "stream",
"text": [
"normal_peek[μ=100.0, σ=1.0, n=1,000]\n"
"normal_peek[μ=100.0, σ=1.0, n=100]\n"
]
}
],
@@ -220,15 +234,14 @@
{
"data": {
"text/plain": [
"[(100, 3808),\n",
" (99, 2476),\n",
" (101, 2388),\n",
" (98, 611),\n",
" (102, 598),\n",
" (103, 58),\n",
" (97, 55),\n",
" (104, 3),\n",
" (96, 3)]"
"[(100, 373),\n",
" (99, 252),\n",
" (101, 233),\n",
" (102, 67),\n",
" (98, 64),\n",
" (97, 7),\n",
" (103, 3),\n",
" (104, 1)]"
]
},
"execution_count": 8,
@@ -237,7 +250,7 @@
}
],
"source": [
"stock1.most_common()"
"stock1.most_common() # Most common outcomes and their counts"
]
},
{
@@ -249,7 +262,7 @@
{
"data": {
"text/plain": [
"[(100, 390), (99, 251), (101, 237), (98, 61), (102, 54), (103, 4), (97, 3)]"
"[(100, 40), (101, 26), (99, 24), (98, 5), (102, 4), (97, 1)]"
]
},
"execution_count": 9,
@@ -261,6 +274,14 @@
"peek1.most_common()"
]
},
{
"cell_type": "markdown",
"id": "1a4641c9-1b67-4a3d-a093-88fe1c9bca04",
"metadata": {},
"source": [
"We see that 100 is the most common outcome; then 99 and 101; then 98 and 102; and so on."
]
},
{
"cell_type": "markdown",
"id": "3193d3bd-eaf7-4b9f-acc7-5102af1a313b",
@@ -268,8 +289,8 @@
"source": [
"# Strategies\n",
"\n",
"We previously explained that it best to do all the peeks first, and to continue buying bags until the coins are exhausted. So we'll assume that all strategies automatically do that, and we're left with the task of making **keep**/**sell** choices. I will use two conventions:\n",
"- A **strategy** is a function, `strategy(c, d)`, that returns `'keep'` if a player with `c` coins should keep a bag with `d` diamonds, and otherwise returns `'sell'`. \n",
"We previously explained that it best to do all the peeks first, and to continue buying bags until the coins are exhausted. So we'll assume that all strategies do that, and we're left with the task of making **keep**/**sell** choices. I will use two conventions:\n",
"- A **strategy** is a function, `strategy(c, d)`, that returns `'keep'` if a player who just bought a bag with `d` diamonds and has `c` coins remaining should keep the bag, and otherwise returns `'sell'`. \n",
"- A **strategy maker** is a function that is passed a distribution of peeked-at bags and returns a strategy function.\n",
"\n",
"For example, `cutoff_strategy` is a strategy maker such that `cutoff_strategy(peeks, 0.95)` returns a strategy function that keeps all bags with at least 95% of the mean number of diamonds in `peeks`. (Also, if it started with exactly BUY coins, it keeps the bag, because selling it back would not yield enough coins to buy another bag.)"
@@ -305,15 +326,15 @@
},
{
"cell_type": "code",
"execution_count": 43,
"execution_count": 11,
"id": "2023f0ce-4bf4-442f-87bf-a3bee5c6a4bc",
"metadata": {},
"outputs": [],
"source": [
"strategy = cutoff_strategy(peek1, 0.95) # A strategy to keep bags at least 95% of the mean of peek1\n",
"\n",
"assert strategy(13, 92) == 'sell' # 92 is below the cutoff; sell it back\n",
"assert strategy(23, 103) == 'keep' # 103 is above the cutoff; keep it"
"assert strategy(42, 92) == 'sell' # 92 is below the cutoff; sell it back\n",
"assert strategy(42, 103) == 'keep' # 103 is above the cutoff; keep it"
]
},
{
@@ -323,7 +344,7 @@
"source": [
"# Expected value\n",
"\n",
"I'll define $E(P, \\textit{strategy}, c)$ to be the expected number of diamonds that can be bought with $c$ coins, from a stockpile with distribution $P$, when the player follows the given $\\textit{strategy}$. The expected value is 0 if we don't have enough coins to buy any bags, and otherwise is the probability-weighted average, over all possible bags, of the expected value of the result of either keeping or selling back the bag, depending on what the strategy says to do. That can be written as:\n",
"I'll define $E(P, \\textit{strategy}, c)$ to be the expected number of diamonds that can be bought with $c$ coins, from a stockpile with distribution $P$, when the player follows the given $\\textit{strategy}$. The expected value is 0 if we don't have enough coins to buy any bags, and otherwise is the probability-weighted average, over all possible bags, of the expected value of the result of either keeping or selling back the bag, depending on what the strategy says to do. When the cost of a bag is 12 this can be written as:\n",
"\n",
"\n",
"$$E(P, \\textit{strategy}, c) = \\sum_{d \\in P} P(d) \\left\\{ \\begin{array}{ l l }\n",
@@ -332,7 +353,7 @@
" E(P, \\textit{strategy}, c - 12 + 11) & \\textbf{if } \\textit{strategy}(c, d) = \\textit{sell}\n",
" \\end{array}\\right.$$\n",
" \n",
"Our game is simple enough that it is feasible to do an exact expected value calculation, as long as we remember to cache intermediate results for efficiency:"
"Our game is small enough that it is computationally feasible to do an exact expected value calculation, as long as we cache results:"
]
},
{
@@ -357,11 +378,11 @@
"id": "e93ec7ef-1cdf-45a2-b3f7-6a646588cfbc",
"metadata": {},
"source": [
"This works because each recursive call reduces the number of coins, and when we get down to fewer than 12 coins, the expected value is always zero. If this was not the case (say, if you could have a negative balance of coins and still continue the game) then this computation of $E$ would lead to an infinite loop.\n",
"This function always terminates because each recursive call reduces the number of coins, and when we get down to fewer than 12 coins, the expected value is always zero. If this was not the case (say, if you could have a negative balance of coins and still continue the game) then this computation of $E$ would lead to an infinite loop.\n",
"\n",
"# Optimal strategy\n",
"\n",
"For any game, the optimal strategy is to *take the action that leads to the highest expected value*. That may sound trivial or circular: \"the best strategy is to choose the best action.\" But it is actually neither trivial nor circular, and can be implemented as follows: "
"For any game, the optimal strategy is to *take the action that leads to the highest expected value*. That may sound trivial or circular: \"the best strategy is to choose the best action.\" But it is actually neither trivial nor circular, and can be implemented with the strategy maker `optimal_strategy`: "
]
},
{
@@ -383,7 +404,7 @@
"id": "b91acd05",
"metadata": {},
"source": [
"One subtle but important point: if we want to know the *true* expected value of a situation, we would call `E(c, stockpile, strategy)`. That's easy enough for us to do as outside observers of the game. But a player *in* the game does not have access to the stockpile; all they have is an *estimate* of the stockpile distribution, gained from peeks. We will see that usually the estimation is quite good."
"One subtle but important point: if we want to know the *true* expected value of a situation, we would call `E(c, stockpile, strategy)`. That's easy enough for us to do as outside observers of the game. But a player *in* the game does not have access to the stockpile; all they have is an *estimate* of the stockpile distribution, gained from peeks. We will see that usually the estimate is quite good."
]
},
{
@@ -401,16 +422,17 @@
"metadata": {},
"outputs": [],
"source": [
"stock10 = normal(10) # A stockpile with standard deviation 10 (and mean 100)\n",
"stock10 = normal(σ=10) # A stockpile with standard deviation 10 (and mean 100)\n",
"peek10 = peek(stock10) # A probability distribution formed by peeking at some bags\n",
"\n",
"optimal = optimal_strategy(peek10) # The optimal strategy with respect to peek10\n",
"\n",
"assert 99 < peek10.μ < 101 # The mean of peek10 should be somewhere around 100\n",
"assert 9 < peek10.σ < 11 # The standard ddeviation of peek10 should be somewhere around 10\n",
"assert 9 < peek10.σ < 11 # The standard deviation of peek10 should be somewhere around 10\n",
"assert optimal(13, 98) == 'sell' # sell back because we expect about 100 on the next buy\n",
"assert optimal(13, 103) == 'keep' # keep because we expect about 100 on the next buy\n",
"assert optimal(23, 103) == 'sell' # 103 is an above average bag, but we have 10 chances to do better; sell it\n",
"assert optimal(23, 115) == 'keep' # Even with 10 more chances, it is tough to beat a bag with 115 diamonds\n",
"assert optimal(15, 103) == 'sell' # 103 is an above average bag, but we have 3 chances to do better; sell it\n",
"assert optimal(23, 110) == 'sell' # 110 is a very good bag, but we have 11 chances to do better; sell it\n",
"assert optimal(23, 116) == 'keep' # Even with 11 more chances, it is tough to beat a bag with 116 diamonds\n",
"assert optimal(12, 50) == 'keep' # keep because if we sold we couldn't buy another bag"
]
},
@@ -424,7 +446,7 @@
},
{
"cell_type": "code",
"execution_count": 44,
"execution_count": 15,
"id": "c95654f3-c583-4a47-9be3-c0e7da3b2606",
"metadata": {},
"outputs": [],
@@ -448,7 +470,7 @@
},
{
"cell_type": "code",
"execution_count": 45,
"execution_count": 16,
"id": "562696b4-9786-4b64-ab89-9147aeb163b0",
"metadata": {},
"outputs": [
@@ -456,26 +478,33 @@
"name": "stdout",
"output_type": "stream",
"text": [
"102 diamond bag: sell it (total: 0 diamonds and 94 coins.\n",
"105 diamond bag: keep it (total: 105 diamonds and 82 coins.\n",
" 92 diamond bag: sell it (total: 105 diamonds and 81 coins.\n",
"112 diamond bag: keep it (total: 217 diamonds and 69 coins.\n",
"100 diamond bag: sell it (total: 217 diamonds and 68 coins.\n",
" 89 diamond bag: sell it (total: 217 diamonds and 67 coins.\n",
"109 diamond bag: keep it (total: 326 diamonds and 55 coins.\n",
"106 diamond bag: keep it (total: 432 diamonds and 43 coins.\n",
"112 diamond bag: keep it (total: 544 diamonds and 31 coins.\n",
"111 diamond bag: keep it (total: 655 diamonds and 19 coins.\n",
" 99 diamond bag: keep it (total: 754 diamonds and 7 coins.\n"
" 88 diamond bag: sell it (total: 0 diamonds and 94 coins.\n",
" 96 diamond bag: sell it (total: 0 diamonds and 93 coins.\n",
" 98 diamond bag: sell it (total: 0 diamonds and 92 coins.\n",
"102 diamond bag: sell it (total: 0 diamonds and 91 coins.\n",
" 97 diamond bag: sell it (total: 0 diamonds and 90 coins.\n",
" 88 diamond bag: sell it (total: 0 diamonds and 89 coins.\n",
" 87 diamond bag: sell it (total: 0 diamonds and 88 coins.\n",
"117 diamond bag: keep it (total: 117 diamonds and 76 coins.\n",
" 92 diamond bag: sell it (total: 117 diamonds and 75 coins.\n",
" 89 diamond bag: sell it (total: 117 diamonds and 74 coins.\n",
"109 diamond bag: keep it (total: 226 diamonds and 62 coins.\n",
" 79 diamond bag: sell it (total: 226 diamonds and 61 coins.\n",
"113 diamond bag: keep it (total: 339 diamonds and 49 coins.\n",
"106 diamond bag: keep it (total: 445 diamonds and 37 coins.\n",
" 95 diamond bag: sell it (total: 445 diamonds and 36 coins.\n",
"108 diamond bag: keep it (total: 553 diamonds and 24 coins.\n",
"103 diamond bag: keep it (total: 656 diamonds and 12 coins.\n",
"108 diamond bag: keep it (total: 764 diamonds and 0 coins.\n"
]
},
{
"data": {
"text/plain": [
"[105, 112, 109, 106, 112, 111, 99]"
"[117, 109, 113, 106, 108, 103, 108]"
]
},
"execution_count": 45,
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
@@ -491,13 +520,13 @@
"source": [
"**We've solved the problem!** \n",
"\n",
"We could stop here, but ...\n",
"We could stop here, but I have some remaining questions! \n",
"\n",
"___\n",
"\n",
"# Visualizing a Strategy\n",
"\n",
"I have some remaining questions! \n",
"\n",
"\n",
"We have *defined* the optimal strategy, but do we *understand* it? In exactly which situations should we keep a bag and when should we sell it back? What's a concise intuitive explanation for these results? Here's some code that might lead to some understanding:"
]
@@ -544,7 +573,7 @@
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABIgAAAIhCAYAAAAl74HfAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAAC/1klEQVR4nOzdeXxU5dk//s/JECABMgKjEBRM6lYrwdKK1lK3Kljjni5U2rq2WpendasKtRpaJS6tWu1iF3eLpbVRq81Td7F9sG1c2oJan0ckohKXEZ0gCRiS8/uD38yXIds1yc2Z67rP5/168WoZLs755LrOuU1uZgnCMAxBRERERERERESxVVLsAEREREREREREVFzcICIiIiIiIiIiijluEBERERERERERxRw3iIiIiIiIiIiIYo4bREREREREREREMccNIiIiIiIiIiKimOMGERERERERERFRzHGDiIiIiIiIiIgo5rhBREREREREREQUc9wgIqJBu/vuuxEEARYvXtzjz/bcc08EQYAHH3ywx5/ttNNO+MQnPpH7fRAEOOuss7Zq1kIsXboU9fX1eP/994sdpU+33norgiBAS0tL7rETTzwRVVVVA/7dAw88EFOnTt164RSdNwgC1NfX537/wgsvoL6+Pq9vWcXqS19Wr16N+vp6/POf/+zxZ/X19QiCIPpQAJ544gkEQYAnnnhiyMdqamrKm49rP/vZz3DrrbduteOTDluufS0tLQiCIPfr7rvvjjTP7bffji9/+cvYbbfdUFJS0u+6/MEHH+Dss8/GpEmTMHLkSHz84x/Hb3/7215rn332WRxyyCEYPXo0ttlmG9TV1eGVV14RZXrggQdw/PHHo6amBqWlpUVbPwp18cUX44gjjsD222+PIAhw4okn9ln7yiuvoK6uDttssw1Gjx6NWbNm4dlnnxWfayj9LZbrrrsOdXV1qK6uRhAEOPDAA/usffvtt3HiiScilUqhvLwc++67Lx599FHxuQr5+4888gj23XdflJeXI5VK4cQTT8Tbb7/do66zsxMLFixAVVUVRowYgY9+9KO44YYbetSdffbZuft59OjR4sxEVDhuEBHRoB144IEIggCPP/543uNr1qzBsmXLMGrUqB5/9vrrr+OVV17BQQcdFGXUgixduhQLFixQvUFEMk899RS+/vWv537/wgsvYMGCBb1uEGmzevVqLFiwoNcNoq9//et46qmnog/lWFNTExYsWLDVjs8Noni7+OKL8dRTT+Gzn/1spOe944478Pzzz2PvvffGTjvt1G9tXV0dbrvtNlx66aX47//+b8yYMQPHHXccFi1alFf3n//8BwceeCA+/PBD/O53v8PNN9+M//3f/8V+++2Hd955Z8BM99xzD/72t7/hYx/7GPbcc88hfX1Ruvbaa/Huu+/iqKOOwvDhw/use+edd7Dffvvhf//3f3HzzTfjd7/7HdavX48DDzwQL7300oDnGWp/i+XGG2/Eq6++is9+9rPYdttt+6zbsGEDDj74YDz66KP48Y9/jPvuuw8TJkzA5z73OSxZsmTA8xTy95csWYLDDjsMEyZMwH333Ycf//jHeOSRR3DwwQdjw4YNebVnnHEGGhoacOaZZ+LBBx/Esccei29/+9tYuHBhXt0555yDp556CrW1tQV0h4gGY1ixAxCRXalUClOnTu3xTIIlS5Zg2LBhOOWUU3psEGV/r3mDiPzxqU99qtgRtooddtgBO+ywQ7FjRCoMQ6xfvx5lZWXFjkID6OjoUDGnnXbaqShrwIMPPoiSkk3/BnvEEUdg+fLlvdY1NTXh4YcfxqJFi3DccccB2PTfxldffRXf+c53MGfOHCQSCQDAJZdcghEjRuCBBx5ARUUFAOCTn/wkdtllF/zwhz/ElVde2W+mX/3qV7lMZ511Fp555hknX+vWtnbt2lzuO+64o8+6q6++Gu+88w6WLl2KHXfcEQDwmc98BjvttBMuueSSXp/pvLmh9rdYXnjhhVx/+nsG7E033YTly5dj6dKl2HfffQFsutb23HNPXHDBBfj73//e73kK+fvf+c53sOuuu+Luu+/GsGGbftSsrq7GzJkzcfPNN+P0008HADz//PO46aabcPnll+M73/kOgE3/8Pjuu+/isssuwze/+U2MGzcOALDjjjtixx137HcTjIjc4DOIiGhIDjroILz00ktobW3NPfbEE09gxowZqK2txTPPPIO1a9fm/VkikcB+++3X41h33HEHdt99d5SXl2PPPffEAw880KPm//7v/zB37lxst912GDFiBHbffXf89Kc/zavJvgTmrrvuwne/+11MmjQJFRUVOOSQQwb8l8T6+vrcNyrZp2xv/nKa7u5uXHXVVfjoRz+KESNGYLvttsPxxx+P119/fcBevfPOOzj11FMxefJkjBgxAttuuy1mzpyJRx55JK8u+y9tFRUVKC8vx8yZMwt6GrjUX/7yF3zqU59CWVkZtt9+e3zve99DV1dXXs2CBQuwzz77YNy4caioqMAnPvEJ3HTTTQjDsMfxFi1ahH333RejR4/G6NGj8fGPfxw33XRTvxnuuecelJeX4+tf/zo2btzYa81Pf/pTlJSU5D09/Uc/+hGCIMCZZ56Ze6y7uxtjx47Feeedl3ts85eY3XrrrfjiF78IYNN1m53tls8waW5uxn777Yfy8nJ85CMfwRVXXIHu7u5+vw4AWL9+PebNm4fq6moMHz4c22+/Pc4888wez0SrqqrCEUccgXvuuQfTpk3DyJEj8ZGPfATXX399riZ7DwHASSedlMua/Vp6e4lZ9rgPPPAApk+fjrKyMuy+++65++jWW2/F7rvvjlGjRmHvvffG008/nff3n376aXz5y19GVVUVysrKUFVVheOOOw6vvvrqgF97b9rb23H++eejuroaI0eOxLhx47DXXnvhrrvuArDpZUHZe3fzlwNln92VfenpjTfeiN133x0jRozAbbfdBkB2XVZVVeH555/HkiVLcsfe/KU+bW1tuXzZeZ199tlYt25d3tfx/vvv45RTTsG4ceMwevRoHH744XjllVfy5vGXv/wlt+Zs6fbbb0cQBGhubu63X8uXL8fRRx+NsWPH5l5qlP16s4aytgH/77p5/vnncdxxxyGZTGLChAk4+eSTkclk8moLvZ4bGxsxffp0jBw5EgsWLMhlXbRoES688EJUVlZi9OjROPLII/HWW29h7dq1OPXUU5FKpZBKpXDSSSfhgw8+yDv2T3/6U+y///7YbrvtMGrUKNTU1OCqq65CZ2fngF9rX/p6Ka7Ll21mf2AfyD333IPRo0fn1qWsk046CatXr8790L1x40Y88MAD+PznP5/bvAA2/dB80EEH4Z577nGWqRAffvghLr74Yuy8884YPnx43n080MudpArp5Wc/+9nc5hAAVFRUoK6uDvfff3+f/30B3PS3NyeeeCJGjx6Nl19+GbW1tRg9ejQmT56M8847r8czaQarkP7stttuuc0dABg2bBi++tWv4h//+AfeeOMNJ3//jTfeQHNzM772ta/lNocA4NOf/jR23XXXvF7ee++9CMMQJ510Ut65TjrpJHR0dODPf/6z6GsjIrf4DCIiGpKDDjoI119/PZ544oncv4A+/vjjOOKIIzBz5kwEQYC//OUvuacFP/744/jEJz6BZDKZd5w//elPaG5uxve//32MHj0aV111FY499li89NJL+MhHPgJg07+UffrTn8aUKVPwox/9CBMnTsSDDz6Ib33rW0in07j00kvzjjl//nzMnDkTv/71r9HW1oYLL7wQRx55JF588cXcv8pu6etf/zrWrFmDG264AY2NjaisrAQAfOxjHwMAnH766fjlL3+Js846C0cccQRaWlrwve99D0888QSeffZZpFKpPnv1ta99Dc8++ywuv/xy7Lrrrnj//ffx7LPP4t13383V3HnnnTj++ONx9NFH47bbbkNpaSl+8Ytf4NBDD8WDDz6Igw8+uJDx9OnNN9/El7/8ZVx00UX4/ve/jz/96U+47LLL8N577+EnP/lJrq6lpQWnnXYapkyZAgD429/+hv/6r//CG2+8gUsuuSRXd8kll+AHP/gB6urqcN555yGZTGL58uX9bi5ce+21+M53voP6+npcfPHFfdYdcsghCMMQjz76aO4ae+SRR1BWVoaHH344V/f000/j/fffxyGHHNLrcQ4//HAsXLgQ8+fPx09/+tPc+2Bt/hKQN998E1/5yldw3nnn4dJLL8U999yDefPmYdKkSTj++OP7zBiGIY455hg8+uijmDdvHvbbbz/8+9//xqWXXoqnnnoKTz31FEaMGJGr/+c//4mzzz4b9fX1mDhxIn7zm9/g29/+Nj788EOcf/75+MQnPoFbbrkFJ510Ei6++GIcfvjhADDgs4b+9a9/Yd68efjud7+LZDKJBQsWoK6uDvPmzcOjjz6KhQsXIggCXHjhhTjiiCOwcuXK3DM9WlpasNtuu+HLX/4yxo0bh9bWVvz85z/HjBkz8MILL/R7bffm3HPPxR133IHLLrsM06dPx7p167B8+fLc9f69730P69atw9133533crnsPQds+gHiL3/5Cy655BJMnDgR2223XS7rQNflPffcgy984QtIJpP42c9+BgC5GbS3t+OAAw7A66+/jvnz52PatGl4/vnncckll2DZsmV45JFHEAQBuru7ceSRR+Lpp59GfX09PvGJT+Cpp57C5z73ubyvdb/99sP06dPx05/+NHeNZv3kJz/BjBkzcht+vXnppZfw6U9/Gttttx2uv/56jB8/HnfeeSdOPPFEvPXWW7jgggvy6geztm3u85//PObMmYNTTjkFy5Ytw7x58wAAN998M4DCr+dnn30WL774Ii6++GJUV1dj1KhRuY22+fPn46CDDsKtt96KlpYWnH/++TjuuOMwbNgw7Lnnnrjrrrvw3HPPYf78+RgzZkzeRumKFSswd+7c3CbLine truncated
"image/png": "iVBORw0KGgoAAAANSUhEUgAABIgAAAIhCAYAAAAl74HfAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAAC77UlEQVR4nOzde3hcZdU+/ntnmrZJ2wxtB9oUKAkIiDRgxYICQrG0QMrJqFSLchYUfJGDgq0cUoQG6stBCyIqAoLFKgZ4wbxyElAsaKCALSJ+qQ3lEMChMFOaaUmb5/dHf5m3Q5JmTfJ0z1p735/r6qWdru59Z629H5Kncwiccw5ERERERERERBRbZaUOQEREREREREREpcUNIiIiIiIiIiKimOMGERERERERERFRzHGDiIiIiIiIiIgo5rhBREREREREREQUc9wgIiIiIiIiIiKKOW4QERERERERERHFHDeIiIiIiIiIiIhijhtEREREREREREQxxw0iItrq7rrrLgRBgMWLF/f4s7333htBEOCBBx7o8We77LILPvGJT+R/HwQBvvnNb27VrMVYsmQJGhsb8d5775U6Sp9uvfVWBEGAtra2/GMnnXQSampq+v27U6dOxaRJk7ZeOEXnDYIAjY2N+d//4x//QGNjY0HfupWqL31544030NjYiOeee67HnzU2NiIIgvBDAXjssccQBAEee+yxQR+rpaWlYD6+/fjHP8att9661Y5POnx47Wtra0MQBPlfd911V6h51qxZg7PPPhvbb789hg0bht122w0LFizAxo0be9T+7W9/w2GHHYZRo0Zh5MiROOSQQ/CXv/xFfK5HH30U06dPx3bbbYeRI0dir732wo9+9KNez6XF/fffjxNOOAF1dXUoLy/f4lrW2dmJefPmoaamBsOGDcNHP/pRLFy4UHSeP/7xjzjllFPw0Y9+FCNGjMD222+PY445Bs8884yvL2WreOKJJ3Daaadhn332wbBhw3r8t15i6dKlOPTQQzFy5Ehss802aGhowL///e9eaxcuXIiPfvSjGDZsGGprazFv3jx0dnb2qHv77bdx0kknIZVKobKyEp/+9KfxyCOP9Kj7+Mc/nr/3jjzyyKJyE9HWww0iItrqpk6diiAI8OijjxY8vnr1aixbtgwjRozo8WevvfYa/v3vf+OQQw4JM2pRlixZgnnz5qneICKZJ598Eqeddlr+9//4xz8wb968or/ZLoU33ngD8+bN63WD6LTTTsOTTz4ZfijPWlpaMG/evK12fG4QxdtFF12EJ598Ep/97GdDO+eGDRswffp03HHHHZg7dy7uv/9+HHXUUfjud7+Lc889t6C2tbUVBx10EHK5HG6//XbcfvvtWLduHaZNmya6vx9++GEceuih2LBhA372s5/hnnvuwdSpU/Gtb30L55133tb6Egft7rvvxlNPPYWPfexj2HvvvbdYe+aZZ6KpqQlnnXUWHnjgAXzuc5/Dt771LcyfP7/f89x4441oa2vDt771LbS0tOCHP/wh3n77bXzqU5/CH//4R19fjnePPPIIHn74YUycOBH7779/0X//n//8J6ZOnYoPPvgAv/nNb/CLX/wC//rXv/CZz3wG//nPfwpqr7jiCnzrW99CQ0MDHnjgAZx55pmYP38+zjrrrIK69evXY9q0aXjkkUfwwx/+EPfeey/GjRuHww8/HI8//nhB7e23344nn3wS48ePL/6LJ6KtxxERhaCurs7tvvvuBY81Nze78vJyd/bZZ7t999234M9++ctfOgDuvvvuyz8GwJ111lmh5JX4wQ9+4AC4lStXljpKn2655ZYeGU888US300479ft3Dz74YLfnnntuvXDKzru53/72tw6Ae/TRR3v8mYZ8m2ttbXUA3C233FLqKAUeffTRPntYrLPOOstJv2Xp6upyHR0dRR1/zz33dAcffPAAktFgFDunwfrw2rdy5cqS3Tt33nmnA+B+97vfFTx++umnu7KyMvfPf/4z/9hhhx3mxo0b59auXZt/LJvNulQq5fbff/9+z3X88ce7YcOGuffff7/g8RkzZriqqqpBfiVbz8aNG/P/f0trwPLly10QBG7+/PkFj3/ta19zFRUV7p133tnied56660ej61Zs8aNGzfOTZs2bQDJw7F5fwby/cgXv/hFl0qlXCaTyT/W1tbmysvL3QUXXJB/LJ1Ou+HDh7vTTz+94O9fccUVLggC98ILL+Qfu+GGGxwAt2TJkvxjnZ2d7mMf+1iP7/O67bTTTm7mzJni3ES0dfEZREQUikMOOQQvvfQS2tvb84899thjmDJlCurr6/HMM89gzZo1BX+WSCTwmc98psexbr/9duyxxx6orKzE3nvvjfvvv79Hzf/7f/8Ps2fPxnbbbYdhw4Zhjz32wA033FBQ0/0SmDvvvBPf+973MGHCBFRVVeHQQw/FSy+9tMWvp7GxEd/5zncAALW1tfmnSXe/nKarqwsLFizIPx17u+22wwknnIDXXnut31795z//wemnn44dd9wRw4YNw7bbbosDDjgADz/8cEHdww8/jGnTpqGqqgqVlZU44IADen0a92D9+c9/xqc+9SlUVFRg++23x8UXX9zjZQnz5s3DfvvthzFjxqCqqgqf+MQncPPNN8M51+N4ixYtwqc//WmMHDkSI0eOxMc//nHcfPPNW8xw9913o7KyEqeddho2bNjQa80NN9yAsrIyvP322/nHrr76agRBUPCvnF1dXRg9ejTOP//8/GObv8Ts1ltvxRe/+EUAm67b7tl++Bkmra2t+MxnPoPKykrsvPPOuPLKK9HV1bXFrwMA1q1bhzlz5qC2thZDhw7F9ttvj7POOqvHM9Fqampw5JFH4u6778Zee+2F4cOHY+edd8aPfvSjfE33PQQAJ598cj5r99fS20vMuo97//33Y/LkyaioqMAee+yRv49uvfVW7LHHHhgxYgT23XdfPP300wV//+mnn8aXvvQl1NTUoKKiAjU1Nfjyl7+MV155pd+vvTcdHR349re/jdraWgwfPhxjxozBJz/5Sdx5550ANr0sqPve3fzlQN3P7up+6elPfvIT7LHHHhg2bBhuu+02ALLrsqamBi+88AIef/zx/LE3fxlSNpvN5+ue1znnnIO1a9cWfB3vvfceTj31VIwZMwYjR47EzJkz8e9//7tgHn/+85/za86H/fKXv0QQBGhtbd1iv5YvX45jjjkGo0ePxvDhw/Hxj388//V2G8zaBvzfdfPCCy/gy1/+MpLJJMaNG4dTTjkFmUymoLbY67m5uRmTJ0/G8OHDMW/evHzWRYsW4cILL0R1dTVGjhyJo446Cm+99RbWrFmD008/HalUCqlUCieffDLef//9gmPfcMMNOOigg7DddtthxIgRqKurw4IFC3p9+YtUXy/F9fWyzb/85S8IggBHHHFEweNHHnkkurq6cPfddxfUTp06FZWVlfnHRo0ahYMOOghLliwp+O9qb8rLyzF06FBUVFQUPL7NNttg+PDhA/4aWlpacOCBB2LUqFEF9+aH79GBKiuT/Zhyzz33wDmHk08+ueDxk08+GblcDn/4wx+2+Pe32267Ho+NHDkSH/vYx/Dqq6/KA29msPeghLQ/vdmwYQPuv/9+fP7zn0dVVVX+8Z122gmHHHJIwfX3hz/8AevWreu1v8453HPPPfnH7r77buy+++749Kc/nX9syJAh+MpXvoK//e1veP311wecmYjCMaTUAYgoHg455BD86Ec/wmOPPYYvf/nLADa9J8KRRx6JAw44AEEQ4M9//jPq6+vzf/aJT3wCyWSy4Di///3v0draissuuwwjR47EggUL8LnPfQ4vvfQSdt55ZwCbXh60//77Y+LEibj66qsxfvx4PPDAAzj77LORTqdx6aWXFhxz7ty5OOCAA/Dzn/8c2WwWF154IY466ii8+OKLSCQSvX49p512GlavXo2FCxeiubkZ1dXVAICPfexjAIBvfOMb+OlPf4pvfvObOPLII9HW1oaLL74Yjz32GJYuXYpUKtVnr7761a9i6dKluOKKK7Dbbrvhvffew9KlS/HOO+/ka+644w6ccMIJOOaYY3DbbbehvLwcN910Ew477DA88MADmDZtWjHj6dObb76JL33pS/jud7+Lyy67DL///e9x+eWX491338X111+fr2tra8MZZ5yBiRMnAgCeeuop/Nd//Rdef/11XHLJJfm6Sy65BN///vfR0NCA888/H8lkEsuXL9/i5sK1116L73znO2hsbMRFF13UZ92hhx4K5xweeeSR/DX28MMPo6KiAg899FC+7umnn8Z7772HQw89tNfjzJw5E/Pnz8fcuXNxww035N8Ha5dddinoy/HHH4/zzz8fl156Ke6++27MmTMHEyZMwAknnNBnRuccjj32WDzyyCOYM2cOPvOZz+Dvf/87Lr30Ujz55JN48sknMWzYsHz9c889h3POOQeNjY0YP348fvWrX+Fb3/oWPvjgA3z729/GJz7xCdxyyy04+eSTcdFFF2HmzJkAgB122KHPDADw/PPPY86cOfje976HZDKJefPmoaGhAXPmzMEjjzyC+fPnIwgCXHjhhTjyyCOxcuXK/A+XbW1t2H333fGlL30JY8aMQXt7O2688UZMmTIF//jHP7Z4bffmvPPOw+23347LL78ckydPxtq1a7F8+fL89X7xxRdj7dq1uOuuuwpeTtN9zwGbfkD885//jEsuuQTjx4/P/8AnuS7vvvtufOELX0AymcSPf/xjAMjPoKOjAwcffDBee+01zJ07F3vttRdeeOEFXHLJJVi2bBkefvhhBEGArq4uHHXUUXj66afR2NiIT3ziE3jyySdx+OGHF3ytn/nMZzB58mTccMMN+Wu02/XXX48pU6bkN/x689JLL2H//ffHdttthx/96EcYO3Ys7rjjDpx00kl46623cMEFFxTUD2Rt29znP/95zJo1C6eeeiqWLVuGOXPLine truncated
"text/plain": [
"<Figure size 1400x600 with 1 Axes>"
]
@@ -562,9 +591,9 @@
"id": "1256a5ec-dd6b-4f4a-8d35-50d5456c0a8f",
"metadata": {},
"source": [
"We notice three things about this plot:\n",
"Three interesting things about this plot:\n",
"- It is made out of sawtooths.\n",
"- The edge of each sawtooth goes up as the number of coins mod 12 goes up. When you have an exact multiple of 12 coins, it is (almost always) best to keep the bag you just bought, no matter how bad the bag. For example, with 24 coins it is always better to buy and keep 2 bags than to sell one back and be left with only enough coins to keep 1 bag. With each extra coin from 25 to 35, we can afford to be more picky, and the bag values that we will sell back increase, from 96 up to 109. (The first time that we see a multiple of 12 where it is better to sell a bag back is with 120 coins, and then only for bags with 69 or fewer diamonds. Such bags are more than 3 standard deviations from the mean, so they occur less than 0.5% of the time.)\n",
"- The edge of each sawtooth goes up as the number of coins mod 12 goes up. When you have an exact multiple of 12 coins, it is (almost always) best to keep the bag you just bought, no matter how bad the bag. For example, with 24 coins it is always better to buy and keep 2 bags than to sell one back and be left with only enough coins to keep 1 bag. With each extra coin from 25 to 35, we can afford to be more picky, and the bag values that we will sell back increase, from 95 up to 109. (The first time that we see a multiple of 12 where it is better to sell a bag back is with 120 coins, and then only for bags with 71 or fewer diamonds. Such bags are more than 3 standard deviations from the mean, so they occur less than 0.5% of the time.)\n",
"- The height of each sawtooth goes down as the number of coins increases. I think that is because with, say, 23 coins you know you have 11 chances to buy and sell back the next bag, so you can afford to reject pretty good bags, such as 100 diamonds. With 119 coins you also have 11 extra coins that can be used to buy and sell back, but you need to allocate them over nine different bags that you will be keeping, so you don't want to use them all up right away.\n",
"\n",
"# Evaluating a strategy with a metric\n",
@@ -593,7 +622,7 @@
{
"data": {
"text/plain": [
"94.40155233086679"
"94.30207687565489"
]
},
"execution_count": 20,
@@ -611,7 +640,7 @@
"id": "fddd220c",
"metadata": {},
"source": [
"Since the mean of `stock10` is very close to 100, you might be surprised to see that the optimal strategy gets considerably less than that; does that mean something is wrong? ***No***–it means that when you start with a number of coins that has a non-zero remainder mod 12, you won't be able to buy a full additional bag, and by default the average takes into account all remainders mod 12. We can look at just the coins that are multiples of 12; that should give a metric very near 100:"
"Since the mean of `stock10` is very close to 100, you might be surprised to see that the optimal strategy gets considerably less than that; does that mean something is wrong? ***No***–there's nothing wrong. The explanation is that if the mean is 100, and you only have 11 coins, you won't expect to get 100 x 11/12 diamonds; you get nothing. The metric averages over all the times when you have less than 12 coins and thus get nothing. If you don't like that, you could use a metric that considers just the coins that are multiples of 12; that should give a metric very near 100:"
]
},
{
@@ -623,7 +652,7 @@
{
"data": {
"text/plain": [
"100.05930000000001"
"99.81587406149296"
]
},
"execution_count": 21,
@@ -632,7 +661,7 @@
}
],
"source": [
"metric(optimal10, stock10, range(12, 100, 12))"
"metric(optimal10, stock10, range(12, 121, 12))"
]
},
{
@@ -640,7 +669,7 @@
"id": "e6238e63",
"metadata": {},
"source": [
"And we can look at just the coins that are equal to 11 mode 12; that should give a lower value:"
"And we can look at just the coins that are equal to 11 mod 12; that should give a lower value:"
]
},
{
@@ -652,7 +681,7 @@
{
"data": {
"text/plain": [
"74.26480822105012"
"74.27310005707497"
]
},
"execution_count": 22,
@@ -671,7 +700,7 @@
"source": [
"# Visualizing Expected Values\n",
"\n",
"The function `plot_E` below allows us to plot the expected value for a strategy as a function of the number of coins. We can compare different stockpiles, strategies, and/or numbers of peeks. The function produces two plots: one that displays the expected total number of diamonds as a function of the number of coins, and one that displays the expected number of diamonds per 12 coins. (You can think of the second plot as being the same as the first, but rotated so that the x-axis parallels the values where the number of coins mod 12 is zero.)"
"The function `plot_E` below allows us to plot the expected value for a strategy as a function of the number of coins. We can compare different stockpiles, strategies, and/or numbers of peeks. The function produces two plots: one that displays the expected **total** number of diamonds as a function of the number of coins, and one that displays the expected number of diamonds **per 12 coins**. (You can think of the second plot as being the same as the first, but rotated so that the x-axis parallels the values where the number of coins mod 12 is zero.)"
]
},
{
@@ -682,18 +711,17 @@
"outputs": [],
"source": [
"def plot_E(stockpiles: Iterable[ProbDist], strategy_fns=[optimal_strategy], \n",
" ks=[K], coins=COINS, divide=False):\n",
" peeks=[PEEKS], coins=COINS, divide=False):\n",
" \"\"\"Plot the expected number of diamonds for different stockpiles, strategies, and coins.\"\"\"\n",
" peeks = {(stock, k): peek(stock, k) for stock in stockpiles for k in ks} # precompute peeks\n",
" peek_table = {(stock, k): peek(stock, k) for stock in stockpiles for k in peeks} # precompute `peek` calls\n",
" for per_coins in ('', ' per 12 coins'):\n",
" for k in ks: # k is the number of peeks\n",
" for stock in stockpiles:\n",
" for (stock, k) in peek_table:\n",
" for strategy_fn in strategy_fns:\n",
" strategy = strategy_fn(peeks[stock, k])\n",
" strategy = strategy_fn(peek_table[stock, k])\n",
" diamonds = [E(stock, strategy, c) * ((BUY / c) if per_coins else 1)\n",
" for c in coins]\n",
" m = metric(strategy, stock, coins)\n",
" label = f'{m:.1f}♦︎ {strategy.__name__}({peeks[stock, k]})'\n",
" label = f'{m:.1f}♦︎ {strategy.__name__}({peek_table[stock, k]})'\n",
" plt.plot(coins, diamonds, 'o:', label=label)\n",
" decorate(title='Expected number of diamonds' + per_coins, xticks=coins[::12])\n",
" plt.legend(); plt.show()"
@@ -704,7 +732,7 @@
"id": "8cd08502-97a5-409e-ad38-eb238fe3fc68",
"metadata": {},
"source": [
"We start with plots showing the expected number of diamonds obtained by the optimal strategy with 1,000 peeks at the `stock10` stockpile:"
"We start with plots showing the expected number of diamonds obtained by the optimal strategy on the `stock10` stockpile:"
]
},
{
@@ -715,7 +743,7 @@
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABJEAAAIhCAYAAAD+VCv9AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAACVbUlEQVR4nOzdeVyU5f7/8fewDiCioDhoprikES2iaaRm5Vpu1Wk1WmwzW009llmJLVa26Dladk6LVmaefm1mi2lppmWaW0WalqGlgqQgoOzM/fvD70yMwMwAAzMDr+fj4Tlxc819f+65QOXtdX1uk2EYhgAAAAAAAAAnArxdAAAAAAAAAHwfIRIAAAAAAABcIkQCAAAAAACAS4RIAAAAAAAAcIkQCQAAAAAAAC4RIgEAAAAAAMAlQiQAAAAAAAC4RIgEAAAAAAAAlwiRAAAAAAAA4BIhEgAAPmzhwoUymUzV/vrqq6+8XaJbCgoKlJqaWi/1fvXVV371XlRkq/3dd9/1dilu2bNnj4YPH67o6GiZTCZNmDChxucwmUxKTU21f2z7Gt+zZ4/H6vRFN954ozp27OjtMgAAqJMgbxcAAABcW7Bggbp3717peEJCgheqqbmCggLNmDFDknT++ed7txjU2n333acNGzbotddek8ViUVxcXJ3POXz4cK1fv94j5wIAAPWLEAkAAD+QmJioXr16ebsM+KnCwkKZzWaZTKY6nSctLU29e/fWJZdc4pnCJLVu3VqtW7f22PkAAED9YTsbAACNwJIlS2QymTRv3jyH49OnT1dgYKBWrlwp6fh2JJPJpFmzZumJJ57QySefLLPZrF69eunLL7+sdN5ff/1VY8aMUWxsrEJDQ3XqqafqhRdeqDTuyJEjmjRpkjp16qTQ0FDFxsbq4osv1i+//KI9e/bYQ4IZM2bYt+LdeOONNb7OL7/8omHDhik8PFytWrXS7bffrvz8fLfeo9TUVJlMJv3888+65pprFBUVpTZt2uimm25Sbm6ufZztPVq4cGGlc5y4Fct2zh9//FFXXHGFoqKiFB0drYkTJ6qsrEw7d+7UsGHDFBkZqY4dO2rWrFlV1lZUVKSJEyfKYrEoLCxMAwYM0NatWyuN27Rpk0aNGqXo6GiZzWb16NFD77zzjsMY2/awFStW6KabblLr1q0VHh6u4uLiat+bP/74QykpKQ7v/3PPPSer1Srp7213v/32mz777DP7HDrbgpaXl6dbb71VMTExatasmYYNG6Zdu3ZVGlfVdraVK1dq9OjROumkk2Q2m9WlSxeNGzdOhw4dcnitJ95/V/cu/f018eyzz+r5559XfHy8mjVrpuTkZH333XdV3lO3bt3s53vjjTeqfI/mz5+vM888U82aNVNkZKS6d++uBx98sNr3FAAAb2MlEgAAfqC8vFxlZWUOx0wmkwIDAyVJV199tdasWaNJkybpnHPOUa9evbRq1So9/vjjevDBBzV48GCH186bN08dOnTQnDlzZLVaNWvWLF100UVas2aNkpOTJUnbt2/Xueeeq5NPPlnPPfecLBaLPv/8c91zzz06dOiQpk+fLknKz89Xv379tGfPHt1///3q06ePjh49qq+//loZGRk699xztXz5cg0bNkw333yzbrnlFkmyB0vuXufgwYMaMGCAgoOD9eKLL6pNmzZ66623dNddd9XovfzHP/6hq666SjfffLN++uknTZ06VZL02muv1eg8FV155ZVKSUnRuHHjtHLlSs2aNUulpaX64osvdMcdd2jy5MlavHix7r//fnXp0kWXXXaZw+sffPBBJSUl6ZVXXlFubq5SU1N1/vnna+vWrerUqZMkafXq1Ro2bJj69Omjl156SVFRUVqyZImuuuoqFRQUOIRyknTTTTdp+PDhevPNN3Xs2DEFBwdXWftff/2lc889VyUlJXrsscfUsWNHffzxx5o8ebJ2796tF198UUlJSVq/fr0uvfRSde7cWc8++6wkVbsFzTAMXXLJJfr222/1yCOP6Oyzz9Y333yjiy66yK33c/fu3UpOTtYtt9yiqKgo7dmzR88//7z69eunn376qdK91Pb9d+feK3rhhRfUvXt3zZkzR5L08MMP6+KLL1Z6erqioqIkHQ+Qxo4dq9GjR+u5556zz2dxcbECAv7+99slS5bojjvu0N13361nn31WAQEB+u2337R9+3a33iMAALzCAAAAPmvBggWGpCp/BQYGOowtKioyevToYcTHxxvbt2832rRpYwwYMMAoKyuzj0lPTzckGW3btjUKCwvtx/Py8ozo6Ghj0KBB9mNDhw41TjrpJCM3N9fhOnfddZdhNpuN7OxswzAM49FHHzUkGStXrqz2Pv766y9DkjF9+vRKn3P3Ovfff79hMpmMbdu2OYwbPHiwIclYvXp1tdc3DMOYPn26IcmYNWuWw/E77rjDMJvNhtVqNQzj7/dowYIFlc5x4j3Yzvncc885jDvrrLMMScb7779vP1ZaWmq0bt3auOyyy+zHVq9ebUgykpKS7Nc3DMPYs2ePERwcbNxyyy32Y927dzd69OhhlJaWOlxrxIgRRlxcnFFeXm4Yxt9fM9dff73T98PmgQceMCQZGzZscDg+fvx4w2QyGTt37rQf69ChgzF8+HCX5/zss88MSca//vUvh+NPPPFEpffQVm96enqV57JarUZpaamxd+9eQ5KxdOlS++fq+v67e++2r4nTTz/d4ftp48aNhiTj7bffNgzDMMrLy422bdtWO58dOnSwH7vrrruMFi1aVHnPAAD4KrazAQDgB9544w19//33Dr82bNjgMCY0NFTvvPOODh8+rKSkJBmGobffftu+Wqmiyy67TGaz2f5xZGSkRo4cqa+//lrl5eUqKirSl19+qUsvvVTh4eEqKyuz/7r44otVVFRk38bz2Wef6ZRTTtGgQYNqfF81uc7q1at12mmn6cwzz3Q4x5gxY2p0zVGjRjl8fMYZZ6ioqEhZWVk1rt9mxIgRDh+feuqpMplMDitvgoKC1KVLF+3du7fS68eMGePQr6hDhw4699xztXr1aknSb7/9pl9++UXXXnutJFV6nzIyMrRz506Hc/7jH/9wq/ZVq1YpISFBvXv3djh+4403yjAMrVq1yq3zVGSr21avjbtzlZWVpdtvv13t27dXUFCQgoOD1aFDB0nSjh07Ko2v7ftf03sfPny4w/fTGWecIUn2c+7cuVMHDhyodj4r6t27t44cOaJrrrlGS5curbRVDwAAX8R2NgAA/MCpp57qVmPtLl26qH///vrkk080fvz4arcbWSyWKo+VlJTo6NGjOnr0qMrKyjR37lzNnTu3ynPYfuj966+/dPLJJ9fgbv52+PBht69z+PBhxcfHu3UvzsTExDh8HBoaKul48+naio6Odvg4JCRE4eHhDkGd7XheXl6l11c3Hz/88IOk41v5JGny5MmaPHlylTWcGEK4+7Szw4cPV/no+bZt29o/X1OHDx9WUFBQpffanbmyWq0aMmSIDhw4oIcfflinn366IiIiZLVadc4551Q5T7V9/2t6766+dmzjq5vPin2frrvuOpWVlenll1/WP/7xD1mtVp199tl6/PHHK20/BQDAVxAiAQDQiLzyyiv65JNP1Lt3b82bN09XXXWV+vTpU2lcZmZmlcdCQkLUrFkzBQcHKzAwUNddd53uvPPOKq9lC3Rat26tffv21areli1bun2dmJiYauv2JFvwcGIj6tqEKe6q7r5soUWrVq0kSVOnTq3UT8mmW7duDh+7+yS2mJgYZWRkVDp+4MABh2vXRExMjMrKynT48GGH4MWduUpLS9MPP/yghQsX6oYbbrAf/+2332pchzt1evLebffq7tfp2LFjNXbsWB07dkxff/21pk+frhEjRmjXrl32lVcAAPgStrMBANBI/PTTT7rnnnt0/fXXa+3atTrjjDN01VVXKScnp9LY999/X0VFRfaP8/PztWzZMvXv31+BgYEKDw/XBRdcoK1bt+qMM85Qr169Kv2y/cB80UUXadeuXU63PVW32qcm17ngggv0888/21fn2CxevLh2b1g12rRpI7PZrB9//NHh+NKlSz16nYrefvttGYZh/3jv3r369ttvdf7550s6HhB17dpVP/zwQ5XvUa9evRQZGVmraw8cOFDbt2/Xli1bHI6/8cYbMplMuuCCC2p8Tttr3nrrLYfj7syVLfyyfc3Y/Oc//6lxHa54+t67deumuLi4auezOhEREbrooos0bdo0lZSU6Oeff67ZjQAA0EBYiQQAgB9IS0ur9HQ2SercubNat26tY8eO6corr1R8fLxefPFFhYSE6J133lFSUpLGjh2rDz/80OF1gYGBGjx4sCZOnCir1aqnn35aeXl5mjFjhn3Mv/71L/Xr10/9+/fX+PHj1bFjR+Xn5+u3337TsmXL7KHRhAkT9L///U+jR4/WAw88oN69e6uwsFBr1qzRiBEjdMEFFygyMlIdOnTQ0qVLNXDgQEVHR6tVq1bq2LFjja7z2muvafjw4Xr88cftT2f75ZdfPPpem0wmpaSk6LXXXlPnzp115plnauPGjR4PqyrKysrSpZdeqltvvVW5ubmaPn26zGaz/clx0vEQ5aKLLtLQoUN14403ql27dsrOztaOHTu0ZcsW/b//9/9qde377rtPb7zxhoYPH65HH31UHTp00CeffKIXX3xR48eP1ymnnFLjcw4ZMkTnnXeepkyZomPHjqlXr1765ptv9Oabb7p8bffu3dW5c2c98MADMgxD0dHRWrZsmVauXFmb23PK0/ceEBCgxx57TLfccot9Po8cOaLU1NRKW9xuvfVWhYWFqW/fvoqLi1NmZqaefPJJRUVF6eyzz/bkbQIA4DGESAAA+IGxY8dWefzll1/WLbfcottvv11//PGHvv/+e0VEREiSOnXqpFdeeUVXXHGF5syZowkTJthfd9ddd6moqEj33HOPsrKydNppp+mLine truncated
"image/png": "iVBORw0KGgoAAAANSUhEUgAABJEAAAIhCAYAAAD+VCv9AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAACWmUlEQVR4nOzdeVxU9f7H8feAwAACBoqDZopLGlIpmkraqqK5ZHnLyrC0zTQrM7O8LWJZ3bwtlpXVvaWV2XIrM8traotlmhuaW2l60cwgUhAQZJ3z+8PfTI7AzACjMwOv5+PR4xFnvnPO58wXLN5+v59jMgzDEAAAAAAAAOBEgLcLAAAAAAAAgO8jRAIAAAAAAIBLhEgAAAAAAABwiRAJAAAAAAAALhEiAQAAAAAAwCVCJAAAAAAAALhEiAQAAAAAAACXCJEAAAAAAADgEiESAAAAAAAAXCJEAgDAh82bN08mk6naf7755htvl+iWoqIipaWlnZR6v/nmG7/6LI5nq/3DDz/0dilu2bt3rwYPHqzo6GiZTCZNnDixxucwmUxKS0uzf237Ht+7d6/H6vRFo0ePVps2bbxdBgAAddLI2wUAAADX5s6dq06dOlU6npCQ4IVqaq6oqEjTp0+XJF188cXeLQa1ds8992jt2rV64403ZLFYFBcXV+dzDh48WGvWrPHIuQAAwMlFiAQAgB9ITExU9+7dvV0G/NTRo0dlNptlMpnqdJ5t27apR48euuKKKzxTmKRmzZqpWbNmHjsfAAA4edjOBgBAPfDee+/JZDLpxRdfdDg+bdo0BQYGavny5ZKObUcymUyaOXOmHn/8cZ1xxhkym83q3r27vvzyy0rn/eWXXzRy5EjFxsYqJCREZ511ll566aVK4w4fPqx7771Xbdu2VUhIiGJjYzVo0CD9/PPP2rt3rz0kmD59un0r3ujRo2t8nZ9//lkDBw5UWFiYmjZtqttvv10FBQVufUZpaWkymUzavn27rrvuOkVFRal58+a66aablJeXZx9n+4zmzZtX6RwnbsWynXPLli26+uqrFRUVpejoaE2aNEnl5eXauXOnBg4cqIiICLVp00YzZ86ssrbi4mJNmjRJFotFoaGhuuiii7Rp06ZK4zZs2KDLL79c0dHRMpvN6tq1qz744AOHMbbtYcuWLdNNN92kZs2aKSwsTCUlJdV+Nr/++qtSU1MdPv9nnnlGVqtV0l/b7nbv3q3//ve/9jl0tgUtPz9ft956q2JiYtS4cWMNHDhQu3btqjSuqu1sy5cv17Bhw3T66afLbDarffv2Gjt2rA4ePOjwXk98/q7uXfrre+Lpp5/Ws88+q/j4eDVu3FjJycn64Ycfqrynjh072s/31ltvVfkZzZkzR+eee64aN26siIgIderUSX//+9+r/UwBAPA2ViIBAOAHKioqVF5e7nDMZDIpMDBQknTttddq5cqVuvfee9WrVy91795dX331lWbMmKG///3v6t+/v8N7X3zxRbVu3VqzZs2S1WrVzJkzddlll2nlypVKTk6WJO3YsUPnn3++zjjjDD3zzDOyWCz64osvdNddd+ngwYOaNm2aJKmgoEB9+vTR3r17df/996tnz546cuSIvv32W2VmZur888/X0qVLNXDgQN1888265ZZbJMkeLLl7nT/++EMXXXSRgoKC9PLLL6t58+Z65513NGHChBp9ln/72990zTXX6Oabb9bWrVs1depUSdIbb7xRo/Mcb8SIEUpNTdXYsWO1fPlyzZw5U2VlZVqxYoXGjx+vyZMna8GCBbr//vvVvn17DR8+3OH9f//735WUlKR///vfysvLU1pami6++GJt2rRJbdu2lSR9/fXXGjhwoHr27KlXXnlFUVFReu+993TNNdeoqKjIIZSTpJtuukmDBw/W22+/rcLCQgUFBVVZ+59//qnzzz9fpaWleuyxx9SmTRt99tlnmjx5svbs2aOXX35ZSUlJWrNmja688kq1a9dOTz/9tCRVuwXNMAxdccUVWr16tR555BGdd955+v7773XZZZe59Xnu2bNHycnJuuWWWxQVFaW9e/fq2WefVZ8+fbR169ZK91Lbz9+dez/eSy+9pE6dOmnWrFmSpIcffliDBg1SRkaGoqKiJB0LkMaMGaNhw4bpmWeesc9nSUmJAgL++vvb9957T+PHj9edd96pp59+WgEBAdq9e7d27Njh1mcEAIBXGAAAwGfNnTvXkFTlP4GBgQ5ji4uLja5duxrx8fHGjh07jObNmxsXXXSRUV5ebh+TkZFhSDJatGhhHD161H48Pz/fiI6ONvr162c/NmDAAOP000838vLyHK4zYcIEw2w2Gzk5OYZhGMajjz5qSDKWL19e7X38+eefhiRj2rRplV5z9zr333+/YTKZjM2bNzuM69+/vyHJ+Prrr6u9vmEYxrRp0wxJxsyZMx2Ojx8/3jCbzYbVajUM46/PaO7cuZXOceI92M75zDPPOIzr0qWLIcn4+OOP7cfKysqMZs2aGcOHD7cf+/rrrw1JRlJSkv36hmEYe/fuNYKCgoxbbrnFfqxTp05G165djbKyModrDRkyxIiLizMqKioMw/jre+aGG25w+nnYPPDAA4YkY+3atQ7Hx40bZ5hMJmPnzp32Y61btzYGDx7s8pz//e9/DUnG888/73D88ccfr/QZ2urNyMio8lxWq9UoKysz9u3bZ0gyFi1aZH+trp+/u/du+544++yzHX6e1q1bZ0gy3n33XcMwDKOiosJo0aJFtfPZunVr+7EJEyYYTZo0qfKeAQDwVWxnAwDAD7z11ltav369wz9r1651GBMSEqIPPvhAhw4dUlJSkgzD0LvvvmtfrXS84cOHy2w227+OiIjQ0KFD9e2336qiokLFxcX68ssvdeWVVyosLEzl5eX2fwYNGqTi4mL7Np7//ve/OvPMM9WvX78a31dNrvP111+rc+fOOvfccx3OMXLkyBpd8/LLL3f4+pxzzlFxcbGys7NrXL/NkCFDHL4+66yzZDKZHFbeNGrUSO3bt9e+ffsqvX/kyJEO/Ypat26t888/X19//bUkaffu3fr55591/fXXS1KlzykzM1M7d+50OOff/vY3t2r/6quvlJCQoB49ejgcHz16tAzD0FdffeXWeY5nq9tWr427c5Wdna3bb79drVq1UqNGjRQUFKTWrVtLkn766adK42v7+df03gcPHuzw83TOOedIkv2cO3fu1O+//17tfB6vR48eOnz4sK677jotWrSo0lY9AAB8EdvZAADwA2eddZZbjbXbt2+vCy64QJ9//rnGjRtX7XYji8VS5bHS0lIdOXJER44cUXl5uWbPnq3Zs2dXeQ7bL71//vmnzjjjjBrczV8OHTrk9nUOHTqk+Ph4t+7FmZiYGIevQ0JCJB1rPl1b0dHRDl8HBwcrLCzMIaizHc/Pz6/0/urm48cff5R0bCufJE2ePFmTJ0+usoYTQwh3n3Z26NChKh8936JFC/vrNXXo0CE1atSo0mftzlxZrValpKTo999/18MPP6yzzz5b4eHhslqt6tWrV5XzVNvPv6b37up7xza+uvk8vu/TqFGjVF5ern/961/629/+JqvVqvPOO08zZsyotP0UAABfQYgEAEA98u9//1uff/65evTooRdffFHXXHONevbsWWlcVlZWlceCg4PVuHFjBQUFKTAwUKNGjdIdd9xR5bVsgU6zZs3022+/1are0047ze3rxMTEVFu3J9mChxMbUdcmTHFXdfdlCy2aNm0qSZo6dWqlfko2HTt2dPja3SexxcTEKDMzs9Lx33//3eHaNRETE6Py8nIdOnTIIXhxZ662bdumH3/8UfPmzdONN95oP7579+4a1+FOnZ68d9u9uvt9OmbMGI0ZM0aFhYX69ttvNW3aNA0ZMkS7du2yr7wCAMCXsJ0NAIB6YuvWrbrrrrt0ww036LvvvtM555yja665Rrm5uZXGfvzxxyouLrZ/XVBQoMWLF+uCCy5QYGCgwsLCdMkll2jTpk0655xz1L1790r/2H5hvuyyy7Rr1y6n256qW+1Tk+tccskl2r59u311js2CBQtq94FVo3nz5jKbzdqyZYvD8UWLFnn0Osd79913ZRiG/et9+/Zp9erVuvjiiyUdC4g6dOigH3/8scrPqHv37oqIiKjVtfv27asdO3YoPT3d4fhbb70lk8mkSy65pMbntL3nnXfecTjuzlzZwi/b94zNq6++WuM6XPH0vXfs2FFxcXHVzmd1wsPDddlll+nBBx9UaWmptm/fXrMbAQDgFGElEgAAfmDbtm2Vns4mSe3atVOzZs1UWFioESNGKD4+Xi+//LKCg4P1wQcfKCkpSWPGjNEnn3zi8L7AwED1799fkyZNktVq1VNPPaX8/HxNnz7dPub5559Xnz59dMEFF2jcuHFq06aNCgoKtHv3bi1evNgeGk2cOFHvv/++hg0bpgceeEA9evTQ0aNHtXLlSg0ZMkSXXHKJIiIi1Lp1ay1atEh9+/ZVdHS0mjZtqjZt2tToOm+88YYGDx6sGTNm2J/O9vPPP3v0szaZTEpNTdUbb7yhdu3a6dxzz9W6des8HlYdLzs7W1deeaVuvfVW5eXladq0aTKbzfYnx0nHQpTLLrtMAwYM0OjRo9WyZUvl5OTop59+Unp6uv7zn//U6tr33HOP3nrrLQ0ePFiPPvqoWrdurc8//1wvv/yyxo0bpzPPPLPG50xJSdGFF16oKVOmqLCwUN27d9f333+vt99+2+V7O3XqpHbt2umBBx6QYRiKjo7W4sWLtXz58trcnlOevveAgAA99thjuuWWW+zzefjwYaWlpVXa4nbrrbcqNDRUvXv3VlxcnLKysvTkk08qKipK5513nidvEwAAjyFEAgDAD4wZM6bK4//61790yy236Pbbb9evv/6q9evXKzw8XJLUtm1b/fvf/9bVV1+tWbNmaeLEifb3TZgwQcXFxbrrrruUnZ2tzp0Line truncated
"text/plain": [
"<Figure size 1400x600 with 1 Axes>"
]
@@ -725,7 +753,7 @@
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABIgAAAIhCAYAAAAl74HfAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAADYdklEQVR4nOzdd3xT9foH8M9Jmiad6aJNWwotZZay9xIQwbKVq6KIIm7U60Avziv0OkFxC173QJwX5VdRhoJsKFBWKbOU2ZZC90qbJuf3R02ltEnTNOnJST7v1+u+rqQnOU/yZJzznO/3+QqiKIogIiIiIiIiIiKPpZA6ACIiIiIiIiIikhYLREREREREREREHo4FIiIiIiIiIiIiD8cCERERERERERGRh2OBiIiIiIiIiIjIw7FARERERERERETk4VggIiIiIiIiIiLycCwQERERERERERF5OBaIiIiIiIiIiIg8HAtERETk8j7//HMIgmDxf3/++afUIdqkoqICCxYscEq8f/75p6xei8uZY//xxx+lDsUmp06dwsSJExESEgJBEPDoo482+zEEQcCCBQvq/m1+j586dcphcbqiO+64A7GxsVKH4TBffvklbr75ZnTp0gUKhcLic1u/fj3uvPNOdO3aFX5+foiOjsbUqVOxZ8+e1g0Y8v6uICIi5/KSOgAiIiJbffbZZ+jatWuD2xMSEiSIpvkqKiqQnJwMABg1apS0wZDdHnvsMezcuROffvopdDodIiMjW/yYEydOxPbt2x3yWNR6vvrqK+Tm5mLgwIEwmUwwGAyNbrd06VLk5+fjkUceQUJCAi5evIjFixdj8ODBWLNmDa6++upWi7lv377Yvn27bL43iYio9bBAREREspGYmIj+/ftLHQbJVGVlJTQaDQRBaNHjpKenY+DAgbjuuuscExiANm3aoE2bNg57PHIMg8EAQRDg5dX4IfOaNWugUNQOyJ80aRLS09Mb3e79999HeHh4vduSkpLQsWNHvPzyy61aIAoMDMTgwYNbbX9ERCQfnGJGRERu49tvv4UgCHjvvffq3T5//nwolUqsW7cOQO0UIUEQsGjRIrz00kto164dNBoN+vfvjz/++KPB4x4/fhwzZsxAeHg41Go1unXrhvfff7/BdkVFRXj88cfRoUMHqNVqhIeHY8KECThy5AhOnTpVVwBITk6umx53xx13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 truncated
"image/png": "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AFanhYmiiOuuuw7btm3DCy+8gP79++PPP//E+PHjbfp9njx5EoMHD8bdd98NnU6H7OxsvPHGGxg2bBgOHjzY4LXY+/u35bVf7v3330fXrl3x1ltvAQCef/55TJgwAVlZWdDpdABqk0MzZszApEmTsGjRorrxrKqqqpdU+fLLL/HAAw/g4Ycfxuuvvw6FQoETJ04gMzPTpt+RIz/DZnPmzMHgwYOxdOlSKBQKi8kdRyguLkZ6erpN1UNr165FamoqunXrhjfeeAPt2rVDdnY2fvvtt7ptNm3ahOTkZPTs2RP/+9//oFarsXjxYqSmpuKLL77AlClTGt2HwWDAtddei7vuugtPPvkkNm/ejBdffBE6nQ4vvPACgJaPFxERuTiRiIjIxX300UciAIv/lEplvW31er3Yp08fMS4uTszMzBTDwsLEESNGiDU1NXXbZGVliQDEyMhIsbKysu72kpISMSgoSBw7dmzdbVdffbUYHR0tFhcX19vPQw89JGo0GrGgoEAURVH817/+JQIQ161bZ/V1XLx4UQQgzp07t8F9tu7n6aefFgVBEPft21dvu+TkZBGAuHHjRqv7F0VRnDt3rghAfPXVV+vd/sADD4gajUY0mUyiKP79O/roo48aPMeVr8H8nIsWLaq3Xe/evUUA4sqVK+tuMxgMYkhIiHjDDTfU3bZx40YRgJiUlFS3f1EUxezsbFGlUol333133W1du3YV+/TpIxoMhnr7uuaaa8SIiAjRaDSKovj3e+aOO+5o9Pdh9swzz4gAxJ07d9a7fdasWaIgCOLRo0frbouNjRUnTpzY5HP++uuvIgDx7bffrnf7Sy+91OB3aI43KyvL4nOZTCbRYDCIp06dEgGIP/74Y919Lf392/raze+JHj161Ps8paWliQDEL774QhRFUTQajWJkZKTV8YyNja277aGHHhIDAwMtvubGOOMzbH4fDh8+vNnxiKIoTpw4sd5ra8ptt90menl5ibt3725y2/j4eDE+Pr7ea73SoEGDxNDQULG0tLTutpqaGjExMVGMjo6uGwvz67z8u2L69OkiAPHrr7+u95wTJkwQu3TpUvezveNFRETywClmREQkG59++il27dpV79/OnTvrbaNWq/H1118jPz8fSUlJEEURX3zxRV2V0eVuuOEGaDSaup+1Wi1SU1OxefNmGI1G6PV6rF+/Htdffz18fX1RU1NT92/ChAnQ6/V1U2t+/fVXdO7cGWPHjm3262rOfjZu3Iju3bujV69e9Z5j6tSpzdrntddeW+/nnj17Qq/XIy8vr9nxm11zzTX1fu7WrRsEQahXMePl5YWOHTvi1KlTDR4/derUev2BYmNjMWTIEGzcuBEAcOLECRw5cgS33XYbADT4PeXk5ODo0aP1nvPGG2+0KfYNGzYgISEBAwYMqHf7nXfeCVEUsWHDBpue53LmuM3xmtk6Vnl5ebj//vsRExMDLy8vqFQqxMbGAgAOHz7cYHt7f//Nfe0TJ06s93nq2bMnANQ959GjR3H+/Hmr43m5AQMGoKioCLfeeit+/PHHBtPnmuLIz7CZre+Zlnj++efx+eef480330Tfvn0b3fbYsWM4efIk7rrrrnqv9XLl5eXYuXMnbrrpJvj7+9fdrlQqcfvtt+Ps2bMNPhtXEgQBqamp9W7r2bNnvfdKS8eLiIhcGxNEREQkG926dUO/fv3q/bN0ctWxY0dcddVV0Ov1uO2226xOAQoPD7d4W3V1NcrKypCfn4+amhq8++67UKlU9f5NmDABAOpOkC5evIjo6Gi7Xldz9pOfn2817uYIDg6u97NarQZQ28jZXkFBQfV+9vb2hq+vb4OTWm9vb+j1+gaPt/a68vPzAdROrwOAp556qsHv6YEHHgCABiestq4Klp+fb3HbyMjIuvubKz8/H15eXg1+17aMlclkwrhx47By5UrMnj0b69evR1paWl0yw9I42fv7b+5rb+q9Y97elvfp7bffjmXLluHUqVO48cYbERoaioEDB9b1C2uKIz/DZs5eSW7+/PlYsGABXnrpJZumhl68eBEAGv1+KSwshCiKLXoPW3qvqNXqeu+Vlo4XERG5NvYgIiIit/Phhx/il19+wYABA/Dee+9hypQpGDhwYIPtcnNzLd7m7e0Nf39/qFSquivwDz74oMV9xcXFAajtJXT27Fm74m3Tpo3N+wkODrYatyOZTxSvbFBrT6LEVtZelzkh0bZtWwC1PWKu7F9k1qVLl3o/27piWXBwMHJychrcfv78+Xr7bo7g4GDU1NQgPz+/XlLFlrHKyMjA/v378fHHH2P69Ol1tzfWMNlejn7t5tdq6/t0xowZmDFjBsrLy7F582bMnTsX11xzDY4dO1ZXMWWNIz/DZi1d5a4x8+fPx7x58zBv3jybGzub+5Q19v3Spk0bKBQKh7+HLWnJeBERkWtjBREREbmVgwcP4pFHHsEdd9yBLVu2oGfPnpgyZQoKCwsbbLty5cp6V8dLS0uxatUqXHXVVVAqlfD19cWoUaOwd+9e9OzZs0H1Ur9+/epOhsePH49jx441OhXJWpVOc/YzatQoHDp0CPvLine truncated
"text/plain": [
"<Figure size 1400x600 with 1 Axes>"
]
@@ -768,7 +796,7 @@
"outputs": [
{
"data": {
"image/png": "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 truncated
"image/png": "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jq8oijJjxgwFUObPn29wfNSoUYq1tbWi1WoVRXl4jb755pscfWQ/B12fCxYsMGjXoEEDBVB++ukn/bG0tDTFxcVFeeGFF/THdu3apQCKn5+ffnxFUZTIyEjFwsJCee211/THfHx8lIYNGyppaWkGY3Xv3l1xd3dXMjIyFEV5+J4ZMmRIntdDZ/LkyQqgHD582OD4yJEjFZVKpZw/f15/zNPTU+nWrVu+ff7vf/9TAOXTTz81OP7hhx/muIa6+UZEROTal1arVdLS0pQrV64ogLJlyxb9c497/U09d917om7dugafpyNHjiiAsn79ekVRFCUjI0Px8PAwup6enp76Y2+99ZZStmzZXM9ZCCGEKKkknU0IIYQoBb799luOHj1q8HP48GGDNlZWVnz//ffcuXMHPz8/FEVh/fr1+t1KWb3wwgtYW1vrH9vb29OjRw/+/PNPMjIySE5O5o8//qBPnz7Y2tqSnp6u/+natSvJycn6NJ7//e9/1KhRgw4dOhT4vAoyzq5du6hduzb169c36GPgwIEFGrNnz54Gj+vVq0dycjIxMTEFnr9O9+7dDR7XqlULlUplsPPG3NycatWqceXKlRyvHzhwoEG9Ik9PT1q0aMGuXbsAuHTpEn///TeDBg0CyHGdoqKiOH/+vEGfL774oklz37lzJ76+vjRt2tTg+LBhw1AUhZ07d5rUT1a6eevmq2PqWsXExPDmm29SqVIlzM3NsbCwwNPTE4Bz587laP+o17+g596tWzeDz1O9evUA9H2eP3+eGzduGF3PrJo2bcq9e/cYMGAAW7ZsyZGqJ4QQQpREks4mhBBClAK1atUyqbB2tWrVaN26Nb/99hsjR440mm6k0WhyPZaamkpCQgIJCQmkp6ezePFiFi9enGsfui+9t27donLlygU4m4fu3Llj8jh37tzB29vbpHPJi7Ozs8FjKysrILP49KNycnIyeGxpaYmtra1BoE53PD4+Psfrja3HyZMngcxUPoAJEyYwYcKEXOeQPQhh6t3O7ty5k+ut5z08PPTPF9SdO3cwNzfPca1NWSutVkvHjh25ceMG06ZNo27dupQpUwatVkvz5s1zXadHvf4FPff83ju69sbWM2vdp8DAQNLT0/nyyy958cUX0Wq1NGnShA8++CBH+qkQQghRUkgQSQghhHiKfPXVV/z22280bdqUJUuW0L9/f5o1a5ajXXR0dK7HLC0tsbOzw8LCArVaTWBgIKNHj851LF1Ax8XFhevXrz/SfMuVK2fyOM7OzkbnXZh0gYfshagfJZhiKmPnpQtalC9fHoApU6bkqKekU7NmTYPHpt6JzdnZmaioqBzHb9y4YTB2QTg7O5Oens6dO3cMAi+mrNWZM2c4efIkK1euZOjQofrjly5dKvA8TJlnYZ677lxNfZ8OHz6c4cOH8+DBA/78809mzJhB9+7duXDhgn7nlRBCCFGSSDqbEEII8ZQ4ffo0Y8eOZciQIezdu5d69erRv39/YmNjc7T96aefSE5O1j++f/8+v/zyC61bt0atVmNra0u7du04ceIE9erVo3Hjxjl+dF+Yu3TpwoULF/JMezK226cg47Rr146//vpLvztHZ926dY92wYxwc3PD2tqaU6dOGRzfsmVLoY6T1fr161EURf/4ypUrHDhwgLZt2wKZAaLq1atz8uTJXK9R48aNsbe3f6Sx27dvz9mzZwkLCzM4/u2336JSqWjXrl2B+9S9Zu3atQbHTVkrXfBL957RWb58eYHnkZ/CPveaNWvi7u5udD2NKVOmDF26dGHq1Kmkpqby119/FexEhBBCiCdEdiIJIYQQpcCZM2dy3J0NoGrVqri4uPDgwQP69euHt7c3S5cuxdLSku+//x4/Pz+GDx/O5s2bDV6nVqsJCAggODgYrVbLvHnziI+PZ+bMmfo2n376Ka1ataJ169aMHDkSLy8v7t+/z6VLl/jll1/0QaOgoCC+++47evXqxeTJk2natClJSUns2bOH7t27065dO+zt7fH09GTLli20b98eJycnypcvj5eXV4HG+frrr+nWrRsffPCB/u5sf//9d6Fea5VKxeDBg/n666+pWrUq9evX58iRI4UerMoqJiaGPn36MGLECOLi4pgxYwbW1tb6O8dBZhClS5cudOrUiWHDhlGhQgXu3r3LuXPnCAsL44cffniksd9++22+/fZbunXrxqxZs/D09OS3335j6dKljBw5kho1ahS4z44dO/Lcc88xceJEHjx4QOPGjdm/fz+rV6/O97U+Pj5UrVqVyZMnoygKTk5O/PLLL4SGhj7K6eWpsM/dzMyM999/n9dee02/nvfu3SMkJCRHituIESOwsbGhZcuWuLu7Ex0dzZw5c3B0dKRJkyaFeZpCCCFEoZEgkhBCCFEKDB8+PNfjX375Ja+99hpvvvkmV69e5ejRo5QpUwaAKlWq8NVXX/HSSy+xaNEigoKC9K976623SE5OZuzYscTExFC7dm1+++03WrZsqW/j6+tLWFgY77//Pu+99x4xMTGULVuW6tWr07VrV307e3t79u3bR0hICF988QUzZ86kXLlyNGnShNdLine truncated
"text/plain": [
"<Figure size 1400x600 with 1 Axes>"
]
@@ -778,7 +806,7 @@
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABIgAAAIhCAYAAAAl74HfAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd3wU5dbA8d9u2qY30oAQQid0pIsC0ptd7A0rdkDFDlgB631V1HuviorlWlBBEASlSYcAApEeIiUhkEBC+mZ33j+WDYRsmSTbc77vh9ebndmZZ/fZ2Z05c57zaBRFURBCCCGEEEIIIYQQDZbW3Q0QQgghhBBCCCGEEO4lASIhhBBCCCGEEEKIBk4CREIIIYQQQgghhBANnASIhBBCCCGEEEIIIRo4CRAJIYQQQgghhBBCNHASIBJCCCGEEEIIIYRo4CRAJIQQQgghhBBCCNHASYBICCGEEEIIIYQQooGTAJEQQgghhBBCCCFEAycBIiGEEB5vzpw5aDQaq/9WrFjh7iaqUlJSwrRp05zS3hUrVnjVe3E+c9u///57dzdFlUOHDjF69GhiYmLQaDQ89thjtd6GRqNh2rRpVX+bP+OHDh1yWDs90R133EHz5s3d3QyH+fzzz7nhhhto27YtWq3W6mv7448/GD9+PO3atSM0NJQmTZpwxRVXsGXLFtc2GO/+rhBCCOFc/u5ugBBCCKHWp59+Srt27Wo8npaW5obW1F5JSQnTp08HYODAge5tjKiziRMnsmHDBj755BMSExNJSkqq9zZHjx7NunXrHLIt4TpffPEFOTk59OrVC6PRiF6vt7jeBx98QF5eHo8++ihpaWmcOHGCN998kz59+rBkyRIuu+wyl7W5e/furFu3zmu+N4UQQriOBIiEEEJ4jY4dO9KjRw93N0N4qdLSUnQ6HRqNpl7b2blzJ7169eLKK690TMOAuLg44uLiHLY94Rh6vR6NRoO/v+VT5iVLlqDVmhLyx4wZw86dOy2u9/777xMfH1/tsREjRtCqVSteffVVlwaIIiIi6NOnj8v2J4QQwnvIEDMhhBA+45tvvkGj0fDee+9Ve3zq1Kn4+fmxdOlSwDRESKPRMGvWLF555RWaNWuGTqejR48e/P777zW2u2/fPm666Sbi4+MJCgqiffv2vP/++zXWO336NJMnT6ZFixYEBQURHx/PqFGj2L17N4cOHaoKAEyfPr1qeNwdd9xR6/3s3r2bESNGEBISQqNGjbj//vs5c+aMqvdo2rRpaDQadu3axY033khkZCQJCQmMHz+egoKCqvXM79GcOXNqbOPC4VHmbf71119cd911REZGEhMTw6RJk6isrGTPnj2MGDGC8PBwmjdvzqxZsyy2raysjEmTJpGYmEhwcDADBgxg69atNdbbvHkzl19+OTExMeh0Orp168a3335bbR3zkK3ffvuN8ePHExcXR0hICOXl5Vbfm3/++Ydbbrml2vv/5ptvYjQagXNDc/bv38+vv/5a1Ye2hoUVFhZyzz33EBsbS1hYGCNGjGDv3r011rM0xGzp0qVcccUVNG3aFJ1OR6tWrbjvvvs4efJktec64v2399rh3GfijTfe4K233iI1NZWwsDD69u3L+vXrLb6mtm3bVm3v888/t/geffDBB3Tp0oWwsDDCw8Np164dzzzzjNX39Py2OPIYNvfvF198weTJk2nSpAlBQUHs37/fajvMwSF7LgwOAYSFhZGWlsbhw4dVbWPDhg2MHTuW2NhYdDodLVu2rDG88c8//2Tw4MGEh4cTEhJCv379WLhwYbV1LA0xu+OOOwgLC2P//v2MGjWKsLAwkpOTmTx5co1jpi79JYQQwjtIBpEQQgivYTAYqKysrPaYRqPBz88PgBtuuIGVK1cyefJk+vTpQ48ePfjjjz94+eWXeeaZZxg6dGi157733nukpKTwzjvvYDQamTVrFiNHjmTlypX07dsXgIyMDPr160ezZs148803SUxMZMmSJTzyyCOcPHmSqVOnAnDmzBn69+/PoUOHmDJlCr1796aoqIhVq1aRnZ1Nv379WLx4MSNGjOCuu+7i7rvvBqgKGqndz/HjxxkwYAABAQHMnj2bhIQEvvzySx566KFavZfXXHMN119/PXfddRc7duzg6aefBuCTTz6p1XbON27cOG655Rbuu+8+li5dyqxZs9Dr9SxbtowHHniAxx9/nK+++oopU6bQqlUrrr766mrPf+aZZ+jevTv//e9/KSgoYNq0aQwcOJCtW7fSokULAJYvX86IESPo3bs3H374IZGRkXzzzTdcf/31lJSUVAu4AYwfP57Ro0fzxRdfUFxcTEBAgMW2nzhxgn79+lFRUcFLL71E8+bN+eWXX3j88cc5cOAAs2fPrhqac9VVV9GyZUve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 truncated
"image/png": "iVBORw0KGgoAAAANSUhEUgAABIgAAAIhCAYAAAAl74HfAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd3hTZfvA8W+S7gktdFKglFmRvWUqe7hQ3BMXbtFXHO8roL4qDtSfA9eLAxS3AqIoKCDKlLJK2ZTdUmhLB11pcn5/hBTaZpy22b0/18WlTU5OnuTJOve5n/vWKIqiIIQQQgghhBBCCCEaLa27ByCEEEIIIYQQQggh3EsCREIIIYQQQgghhBCNnASIhBBCCCGEEEIIIRo5CRAJIYQQQgghhBBCNHISIBJCCCGEEEIIIYRo5CRAJIQQQgghhBBCCNHISYBICCGEEEIIIYQQopGTAJEQQgghhBBCCCFEIycBIiGEEEIIIYQQQohGTgJEQgghPN4nn3yCRqOx+m/lypXuHqIqJSUlzJgxwynjXblypVc9F+czj/3bb79191BUOXjwIOPGjSMqKgqNRsPDDz9c531oNBpmzJhR9bf5NX7w4EGHjdMT3XrrrbRu3drdw3CYzz77jGuvvZYOHTqg1WqtPrY//viD22+/nY4dOxIaGkpiYiKXXXYZmzZtcu2A8e7PCiGEEM7l5+4BCCGEEGp9/PHHdOzYsdblqampbhhN3ZWUlDBz5kwAhg4d6t7BiHp75JFHWL9+PXPnziUuLo74+PgG73PcuHGsXbvWIfsSrjNv3jyys7Pp06cPRqMRvV5vcbs5c+aQm5vLQw89RGpqKidPnuS1116jX79+/Prrr1x88cUuG3OPHj1Yu3at13xuCiGEcB0JEAkhhPAanTt3plevXu4ehvBSpaWlBAUFodFoGrSf9PR0+vTpw+WXX+6YgQHNmzenefPmDtufcAy9Xo9Go8HPz/JP5l9//RWt1pSQP378eNLT0y1u98477xATE1PtstGjR9O2bVteeOEFlwaIIiIi6Nevn8vuTwghhPeQJWZCCCF8xpdffolGo+Htt9+udvn06dPR6XQsW7YMMC0R0mg0vPzyy/z3v/+lZcuWBAUF0atXL37//fda+927dy/XX389MTExBAYG0qlTJ955551a250+fZpHH32UNm3aEBgYSExMDGPHjmXXrl0cPHiwKgAwc+bMquVxt956a53vZ9euXYwePZqQkBCaNWvGPffcQ1FRkarnaMaMGWg0Gnbs2MF1111HZGQksbGx3H777RQUFFRtZ36OPvnkk1r7qLk8yrzPbdu2cfXVVxMZGUlUVBRTp06lsrKS3bt3M3r0aMLDw2ndujUvv/yyxbGVlZUxdepU4uLiCA4OZsiQIWzevLnWdv/88w+XXnopUVFRBAUF0b17d77++utq25iXbP3222/cfvvtNG/enJCQEMrLy60+N4cPH+bGG2+s9vy/9tprGI1G4NzSnH379vHLL79UzaGtZWGFhYXceeedREdHExYWxujRo9mzZ0+t7SwtMVu2bBmXXXYZLVq0ICgoiLZt23L33Xdz6tSpard1xPNv77HDudfEq6++yuzZs0lOTiYsLIz+/fuzbt06i4+pQ4cOVfv77LPPLD5Hc+bMoWvXroSFhREeHk7Hjh156qmnrD6n54/Fke9h8/zOmzePRx99lMTERAIDA9m3b5/VcZiDQ/bUDA4BhIWFkZqaypEjR1TtY/369UyYMIHo6GiCgoJISUmptbzxr7/+4pJLLiE8PJyQkBAGDBjAkiVLqm1jaYnZrbfeSlhYGPv27WPs2LGEhYWRlJTEo48+Wus9U5/5EkII4R0kg0gIIYTXMBgMVFZWVrtMo9Gg0+kAuPbaa1m1ahWPPvoo/fr1o1evXvzxxx88//zzPPXUU4wYMaLabd9++21atWrFG2+8gdFo5OWXX2bMmDGsWrWK/v37A5CRkcGAAQNo2bIlr732GnFxcfz66688+OCDnDp1iunTpwNQVFTEwIEDOXjwINOmTaNv374UFxfz559/kpWVxYABA1i6dCmjR49m8uTJ3HHHHQBVQSO193PixAmGDBmCv78/7777LrGxsXz++efcf//9dXouJ06cyDXXXMPkyZPZvn07Tz75JABz586t037ON2nSJG688Ubuvvtuli1bxssvv4xer2f58uXce++9PPbYY3zxxRdMmzaNtm3bcuWVV1a7/VNPPUWPHj346KOPKCgoYMaMGQwdOpTNmzfTpk0bAFasWMHo0aPp27cv7733HpGRkXz55Zdcc801lJSUVAu4Adx+++2MGzeOefPmcebMGfz9/S2O/eTJkwwYMICKigqee+45WrduzU8//cRjjz3G/v37effdd6uW5lxxxRWkpKTw6quvAlhdFqYoCpdffjlr1qzhmWeeoXfv3vz999+MGTNG1fO5f/9++vfvzx133EFkZCQHDx5k9uzZDBw4kO3bt9d6LPV9/tU89vO98847dOzYkTfeeAOA//znP4wdO5bMzEwiIyMBU3Dotttu47LLLuO1116rms/y8vJqQZUvv/ySe++9lwceeIBXX30VrVbLvn37yMjIUPUcOfI9bPbkk0/Sv39/3nvvPbRarcXgjiMUFBSQlpamKnvo119/ZcKECXTq1InZs2fTsmVLDh48yG+//Va1zapVqxgxYgRdunThf//7H4GBgbz77rtMmDCBBQsWcM0119i8D71ez6WXXsrkyZN59NFH+fPPP3nuueeIjIzkmWeeARo+X0IIITycIoQQQni4jz/+WAEs/tPpdNW2LSsrU7p3764kJycrGRkZSmxsrDJkyBClsrKyapvMzEwFUBISEpTS0tKqywsLC5WoqChl+PDhVZeNGjVKadGihVJQUFDtfu6//34lKChIycvLUxRFUZ599lkFUJYtW2b1cZw8eVIBlOnTp9e6Tu39TJs2TdFoNMqWLVuqbTdixAgFUFasWGH1/hVFUaZPn64Ayssvv1zt8nvvvVcJCgpSjEajoijnnqOPP/641j5qPgbzPl977bVq23Xr1k0BlO+//77qMr1erzRv3ly58sorqy5bsWKFAig9evSoun9FUZSDBw8q/v7+yh133FF1WceOHZXu3bsrer2+2n2NHz9eiY+PVwwGg6Io514zN998s83nw+yJJ55QAGX9+vXVLp8yZYqi0WiU3bt3V13WqlUrZdy4cXb3+csvvyiA8uabb1a7/L///W+t59A83szMTIv7MhqNil6vVw4dOqQAysKFC6uua+jzr/axm18TF154YbX304YNGxRAWbBggaIoimIwGJSEhASr89mqVauqy+6//36lSZMmFh+zLc54D5tfh4MHD67zeBRFUcaNG1ftsdlzww03KH5+fso///xjd9uUlBQlJSWl2mOtqV+/fkpMTIxSVFRUdVllZaXSuXNnpUWLFlVzYX6c539W3HLLLQqgfP3119X2OXbsWKVDhw5Vf9d3voQQQngHWWImhBDCa3z22Wds3Lix2r/169dX2yYwMJCvv/6a3NxcevTogaIoLFiwoCrL6HxXXnklQUFBVX+Hh4czYcIE/vzzTwwGA2VlZfz+++9cccUVhISEUFlZWfVv7NixlJWVVS2t+eWXX2jfvj3Dhw+v8+Oqy/2sWLGCCy64gK5du1bbx/XXX1+n+7z00kur/d2lSxfKysrIycmp8/jNxo8fX+3vTp06odFoqmXM+Pn50bZtWw4dOlTr9tdff321+kCtWrViwIABrFixAoB9+/axa9cubrjhBoBaz1NWVha7d++uts+JEyeqGvsff/xBamoqffr0qXb5rbfeiqIo/PHHH6r2cz7zuM3jNVM7Vzk5Odxzzz0kJSXh5+eHv78/rVq1AmDnzp21tq/v81/Xxz5u3Lhq76cuXboAVO1z9+7dHD9+3Op8nq9Pnz6cPn2a6667joULF9ZaPmePI9/DZmpfMw3xn//8h88//5zXX3+dnj172tx2z5497N+/n8mTJ1d7rOc7c+YM69ev56qrriIsLKzqcp1Ox0033cTRo0drvTdq0mg0TJgwodplXbp0qfZaaeh8CSGE8GwSIBJCCOE1OnXqRK9evar9s3Rw1bZtWwYNGkRZWRk33HCD1SVAcXFxFi+rqKiguLiY3NxcKisreeutt/D396/2b+zYsQBVB0gnT56kRYsW9Xpcdbmf3Nxcq+Oui+jo6Gp/BwYGAqZCzvUVFRVV7e+AgABCQkJqHdQGBARQVlZW6/bWHldubi5gWl4H8Nhjj9V6nu69916AWgesaruC5ebmWtw2ISGh6vq6ys3Nxc/Pr9ZzrWaujEYjI0eO5Pvvv+fxxx/n999/Z8OGDVXBDEvzVN/nv66P3d5rx7y9mtfpTTfdxNy5czl06BATJ04kJiaGvn37VtULs8eR72EzZ3eSmzlzJs8//zz//e9/VS0NPXnyJIDNz5f8/HwURWnQa9jSayUwMLDaa6Wh8yWEEMKzSQ0iIYQQPuejjz5iyZIl9OnTh7fffptrrrmGvn371touOzvb4mUBAQGEhYXh7+9fdQb+vvvus3hfycnJgKmW0NGjR+s13qZNm6q+n+joaKvjdiTzgWLNArX1CZSoZe1xmQMSzZo1A0w1YmrWLzLr0KFDtb/VdiyLjo4mKyur1uXHjx+vdt91ER0dTWVlJbm5udWCKmrmKj09na1bt/LJJ59wyy23VF1uq2ByfTn6sZsfq9rX6W233cZtt93GmTNn+PPPP5k+fTrjx49nz549VRlT1jjyPWzW0C53tsycOZMZM2YwY8YM1YWdzXXKbH2+NG3aFK1W6/DXsCUNmS8hhBCeTTKIhBBC+JTt27fz4IMPcvPNN7N69Wq6dOnCNddcQ35+fq1tv//++2pnx4uKili8eDGDBg1Cp9MREhLCsGHD2Lx5M126dKmVvdSrV6+qg+ExY8awZ88em0uRrGXp1OV+hg0bxo4dO9iLine truncated
"text/plain": [
"<Figure size 1400x600 with 1 Axes>"
]
@@ -797,7 +825,7 @@
"id": "128d6002-3c40-4294-a208-21d21536d6a4",
"metadata": {},
"source": [
"We see that with standard deviation 1 or 10, we can't get very far above 100 diamonds per 12 coins. But with standard deviation 33, the gamble of selling a bag back and buying another starts to really pay off, and we end up with over 110 diamonds per 12 coins. \n",
"We see that with standard deviation 1 or 10, we can't get very far above 100 diamonds per 12 coins. But with standard deviation 33, the gamble of selling a bag back and buying another starts to really pay off, and we end up with about 110 diamonds per 12 coins. \n",
"\n",
"Below is the strategy plot for the optimal strategy on `stock33`. Note that with 12 coins the strategy is still to keep any bag but with multiples of 12 coins starting with 24 there are bag values that will be sold back, even though that means we will end up with one less bag."
]
@@ -810,7 +838,7 @@
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABIgAAAIhCAYAAAAl74HfAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAAC5V0lEQVR4nOydeXgUVdq+n07IQoAgixCibCoyKoso6AgoMEAUARc+V1wQdVBxAxcUFA0uoDgiCuqoo4IyCL9RwF0WlSiDSwRRQEZHh0VZZBQkQCCEpH5/+KW/dNaqTuX0c6qf+7q4Zujc1Ps+dU6FcDynO+Q4jgMhhBBCCCGEEEIIEbckxLoBIYQQQgghhBBCCBFbtEAkhBBCCCGEEEIIEedogUgIIYQQQgghhBAiztECkRBCCCGEEEIIIUScowUiIYQQQgghhBBCiDhHC0RCCCGEEEIIIYQQcY4WiIQQQgghhBBCCCHiHC0QCSGEEEIIIYQQQsQ5WiASQgghhBBCCCGEiHO0QCSE8JVXX30VoVAIc+fOLfe1zp07IxQKYeHCheW+duSRR+KEE04I/z4UCuGGG26o1V69sHz5cmRnZ+O3336LdSuVMmPGDIRCIWzYsCH82hVXXIE2bdpU+2d79+6NDh061F5zRHVDoRCys7PDv//mm2+QnZ0dcd9KiNV9qYwtW7YgOzsbq1atKve17OxshEIh800BWLp0KUKhEJYuXVrja73zzjsR4+M3Tz31FGbMmFFr1xcclP3et2HDBoRCofCvV1991Wg/u3fvxk033YTDDjsMKSkpOProozF58mQUFRWVcz///HOcfvrpaNCgAerXr48+ffrgn//8p+taH374Ifr3749mzZqhfv366NSpE5544okKa7Fw1113oUuXLmjcuDFSU1NxxBFHYMSIEdi4cWOE9+OPP+Lcc8/FEUccgXr16qFhw4bo0qULpk+fjoMHD7qqtWfPHowaNQqZmZlITU3F8ccfjzlz5tRGLN9YtmwZrr76apx44olISUkp93d9WaZNm4Y//OEPSElJQdu2bTFhwgQUFha6ruf2z2/fvh1XXHEFmjZtirS0NJxyyil4//33K7zmkiVLcMoppyAtLQ1NmzbFFVdcge3bt0c4q1atiulzKoTQApEQwmd69+6NUCiEDz/8MOL1HTt2YPXq1ahXr165r/3000/4z3/+gz59+phs1RPLly/HhAkTqBeIhDs++eQTXH311eHff/PNN5gwYUKVP2yzsGXLFkyYMKHCBaKrr74an3zyifmmfOadd97BhAkTau36WiCKb+6++2588skn+NOf/mSs5sGDB9G/f3/MmjUL48aNw1tvvYXBgwfjzjvvxOjRoyPc3NxcnHbaadi3bx9efvllvPzyy9i/fz/69u3r6vlesmQJ+vXrh4MHD+K5557DggUL0Lt3b9x888245ZZbaitijfntt99w8cUXY+bMmXjvvfdw22234a233sLJJ5+MX3/9Nezt3bsX6enpGD9+PN544w3MmTMHPXv2xI033ohrr73WVa0hQ4Zg5syZuPfee/Huu++iW7duuPjiizF79uzaildj3n//fSxZsgStWrVC9+7dq3QffPBB3HzzzRgyZAgWLlyIkSNHYuLEibj++utd1XL75wsKCtC3b1+8//77ePzxx/H666+jefPmOOOMM5CTkxPh5uTkYMCAAWjevDlef/11PP7441iyZAn69u2LgoKCsHf00Ufjk08+wZNPPunyzgghfMcRQgif6dixo9O+ffuI1+bNm+ckJSU5N910k3PSSSdFfO2ll15yADhvvvlm+DUAzvXXX2+kXzc88sgjDgBn/fr1sW6lUl588cVyPQ4bNsxp3bp1tX+2V69eznHHHVd7zZHVLc0//vEPB4Dz4YcflvsaQ3+lyc3NdQA4L774YqxbieDDDz+s9B565frrr3fc/nhSXFzs5Ofne7r+cccd5/Tq1SuKzkRN8DpONaXs977169fH7Nl55ZVXHADOa6+9FvH6iBEjnISEBOdf//pX+LXTTz/dad68ubN3797wa3l5eU7Tpk2d7t27V1vrkksucVJSUpw9e/ZEvJ6VleWkp6fXMIlZ3nnnHQeA8/zzz1frXnDBBU6dOnWc/fv3V+m9/fbbDgBn9uzZEa/379/fyczMdA4ePFijnmuLoqKi8P+v6ueRX375xUlNTXVGjBgR8fqDDz7ohEIhZ+3atVXW8fLnn3zySQeAs3z58vBrhYWFzrHHHlvu57xu3bo5xx57rFNYWBh+7Z///KcDwHnqqafK9VHyd8o//vGPKvsVQviPdhAJIXynT58++Pbbb7F169bwa0uXLkW3bt1w5plnYsWKFdi9e3fE1xITE3HqqaeWu9bLL7+MY445BmlpaejcuTPeeuutcs6///1vDB06FM2aNUNKSgqOOeaYcv/1qeQIzCuvvIK77roLmZmZSE9PR79+/fDtt99WmSc7Oxu33347AKBt27bhrc8lx2mKi4sxefLk8HbsZs2a4fLLL8dPP/1U7b3673//ixEjRqBly5ZISUnBoYceih49emDJkiURXsl/aUtPT0daWhp69OhR6TbumvDxxx/jj3/8I+rWrYvDDjsM48ePL3csYcKECTj55JPRuHFjpKen44QTTsDzzz8Px3HKXW/27Nk45ZRTUL9+fdSvXx/HH388nn/++Sp7mD9/PtLS0nD11VdXemTgySefREJCQsT29EcffRShUCjiv3IWFxejUaNGuPXWW8OvlT5iNmPGDJx//vkAfp+3JWNbdodJbm4uTj31VKSlpeGII47AQw89hOLi4ipzAMD+/fsxduxYtG3bFsnJyTjssMNw/fXXl9uJ1qZNGwwaNAjz589Hp06dwkcsnnjiibBT8gwBwPDhw8O9lmSp6IhZyXXfeustdOnSBXXr1sUxxxwTfo5mzJiBY445BvXq1cNJJ52EL774IuLPf/HFF7jooovQpk0b1K1bF23atMHFF19c7tiHW/Lz83Hbbbehbdu2SE1NRePGjdG1a1e88sorAH4/FlTy7JY+ZlCyu6vk6Olf//pXHHPMMUhJScHMmTMBuJuXbdq0wdq1a5GTkxO+duljSHl5eeH+SsZr1KhR2Lt3b0SO3377DVdddRUaN26M+vXrY+DAgfjPf/4TMR4ff/xx+HtOWV566SWEQiHk5uZWeb/WrFmDs88+G40aNQofhSnJW0JNvrcB/zdv1q5di4svvhgNGzZE8+bNceWVV2LXrl0Rrtf5PG/ePHTp0gWpqamYMGFCuNfZs2fjjjvuQIsWLVC/fn0MHjwYP//8M3bv3o0RI0agadOmaNq0KYYPH449e/ZEXPvJJ5/EaaedhmbNmqFevXro2LEjJk+e7On4TFkqO4rr17HNf/7znwiFQhgwYEDE64MGDUJxcTHmz58f4fbu3RtpaWnh1xo0aIDTTjsNy5cvj/h7tSKSkpKQnJyMunXrRrx+yCGHIDU1NeoM77zzDnr27IkGDRpEPJtln1E/OfTQQwEAderUceUmJCQgMTGxSm/+/PmoX79++Pt+CcOHD8eWLVvw2Wefee6zps+gGxIS3P2T7b333sP+/fsxfPjwiNeHDx8Ox3GwYMEC3/78/Pnz0b59e5xyyinh1+rUqYNLL70Un3/+OTZv3gwA2Lx5M3Jzc3HZZZdFjGX37t1x9NFHR8x/IUTsqf47rhBCeKRPnz544oknsHTpUlx88cUAfn9PhEGDBqFHjx4IhUL4+OOPceaZZ4a/dsIJJ6Bhw4YR13n77beRm5uL++67D/Xr18fkyZNx7rnn4ttvv8URRxwB4PfjQd27d0erVq3w6KOPIiMjAwsXLsRNN92EX375Bffee2/ENceNG4cePXrgb3/7G/Ly8nDHHXdg8ODBWLduXaU/WF599dXYsWMHpk2bhnnz5qFFixYAgGOPPRYAcN111+HZZ5/FDTfcgEGDBmHDhg0YP348li5dipUrV6Jp06aV3qvLLrsMK1euxIMPPoijjz4av/32G1auXBmxpX7WrFm4/PLLcfbZZ2PmzJlISkrCM888g9NPPx0LFy5E3759vQxPpWzbtg0XXXQR7rzzTtx33314++238cADD2Dnzp2YPn162NuwYQOuueYatGrVCgDw6aef4sYbb8TmzZtxzz33hL177rkH999/P4YMGYJbb70VDRs2xJo1a6pcXHjsscdw++23Izs7G3fffXelXr9+/eA4Dt5///3wHFuyZAnq1q2LxYsXh70vvvgCv/32G/r161fhdQYOHIiJEydi3LhxePLJJ8Pvg3XkkUdG3JdLLrkEt956K+69917Mnz8fY8eORWZmJi6//PJKe3QcB+eccw7ef/99jB07Fqeeeiq+/vpr3Hvvvfjkk0/wySefICUlJeyvWrUKo0aNQnZ2NjIyMvD3v/8dN998Mw4cOIDbbrsNJ5xwAl588UUMHz4cd999NwYOHAgAOPzwwyvtAQC++uorjB07FnfddRcaNmyICRMmYMiQIRg7dizef/99TJw4EaFQCHfccQcGDRqE9evXh/9xuWHDBrRv3x4XXXQRGjdujK1bt+Lpp59Gt27d8M0331Q5tyvilltuwcsvv4wHHngAXbp0wd69e7FmzZrwfB8/fjz27t2LV199NeI4TckzBwALFizAxx9/jHvuuQcZGRlo1qxZuNfq5uX8+fNx3nnnoWHDhnjqqacAIDwG+fn56NWrF3766SeMGzcOnTp1wtq1a3HPPfdg9erVWLJkCUKhEIqLizF48GB88cUXyM7OxgknnIBPPvkEZ5xxRkTWU089FV26dMGTTz4ZnqMlTJ8+Hd26dQsv+FXEt99+i+7du6NZs2Z44okn0KRJE8yaNQtXXHEFfv75Z4wZMybCj+Z7W2n+53/+BxdeeCGuuuoqrF69GmPHjgUAvPDCCwC8z+eVK1di3bp1uPvuu9G2bVvUq1cvvNA2btw49OnTBzNmzMCGDRtw222Line truncated
"image/png": "iVBORw0KGgoAAAANSUhEUgAABIgAAAIhCAYAAAAl74HfAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAACxYUlEQVR4nOzde5xN9f7H8feeu8HIjBgjt5DkltAFhTAllPy6KqELJ1SiFCmji0onKUqXU1HOxDlC5VSM0lRHaiKFHB3lkvspmsEwxsz6/eHMPrPnumbPmrU+n+9+vx6PHufY87W+z1lr7W18rbW3z7IsC4wxxhhjjDHGGGMsZAvzGsAYY4wxxhhjjDHGvI0LRIwxxhhjjDHGGGMhHheIGGOMMcYYY4wxxkI8LhAxxhhjjDHGGGOMhXhcIGKMMcYYY4wxxhgL8bhAxBhjjDHGGGOMMRbicYGIMcYYY4wxxhhjLMTjAhFjjDHGGGOMMcZYiMcFIsYYY4wxxhhjjLEQjwtEjDFHW7RoEXw+HxYuXFjsa+3bt4fP58Py5cuLfa1Zs2Y477zz/L/2+XwYM2ZMlVor0urVq5GSkoI//vjDa0qpzZ07Fz6fD9u3b/c/NmzYMDRp0qTc39ujRw+0adOm6nCC5vX5fEhJSfH/+scff0RKSkrAfivIq/1SWnv27EFKSgrWr19f7GspKSnw+XzuowB89tln8Pl8+Oyzzyq9rQ8//DDg+DjdSy+9hLlz51bZ9pmMir72bd++HT6fz//fokWLXPW89dZbuOGGG9CyZUuEhYWV+bp85MgRjB07FklJSYiJicG5556LBQsWlDh23bp16N27N2rUqIHTTjsNgwYNwi+//GLLdOLECTzyyCNo2rQpoqKi0LhxY0ycOBHHjh0L5lt0pV9//RVXX301zjzzTFSvXh21atVChw4dMHv2bJw8eTJg7F/+8hcMHDgQTZo0QbVq1dC8eXPceeed2Lt3r625LMvCa6+9ho4dOyIuLg4JCQno3r07/vGPf1TFt+ZYM2fOxKBBg9C0aVP4fD706NGjwtuYNWsWzj77bERHR6Np06aYOnUqcnNzi407cOAAhg0bhjp16iA2NhYXXXQRPvnkkxK3uXLlSlx00UWIjY1FnTp1MGzYMBw4cCBgzPr16z19njLGuEDEGHO4Hj16wOfzYdWqVQGPHzx4EBs2bED16tWLfW3Xrl345Zdf0LNnTzepFWr16tWYOnWq6AUiZq+vvvoKt99+u//XP/74I6ZOnVriApG09uzZg6lTp5a4QHT77bfjq6++ch/lcB9++CGmTp1aZdvnAlFoN3nyZHz11Ve49NJLXZ337bffxqZNm3D++eejWbNmZY4dNGgQ5s2bhylTpuCjjz5C586dceONNyI1NTVg3L/+9S/06NEDJ06cwN/+9je88cYb+Omnn3DxxRfjP//5T7mmG2+8Ec888wxGjBiBDz/8ELfffjtmzJiB66+/vlLfa1V29OhRxMXF4eGHH8b777+PBQsWoFu3brjrrrvwpz/9KWDslClTUKNGDUybNg0ff/wxJkyYgGXLlqFjx47Yv39/uXNNmTIFI0aMwPnnn493330Xc+fORXR0NPr374/FixdX1bdY6V5++WXs2LEDl156KU4//fQK//4nnngC99xzDwYNGoTly5dj1KhRmDZtGkaPHh0wLicnB7169cInn3yC559/Hu+99x7q1auHyy+/HOnp6QFj09PT0bdvX9SrVw/vvfcenn/+eaxcuRK9evVCTk6Of9xZZ52Fr776Ci+++GJw3zxjrNJFeA1gjJlVnTp10KZNm2JXEqSnpyMiIgK33XZbsQWigl9LXiBi5nThhRd6TaiSzjjjDJxxxhleM1zNsiwcP34c1apV85rCyunYsWMijlOzZs08eQ1Yvnw5wsJO/bts//79sXHjxhLHffjhh0hLS0NqaipuvPFGAKf+bNyxYwfuv/9+XH/99QgPDwcAPPLII4iOjsayZcsQFxcHAOjYsSNatGiBP//5z3j66adL9axZswaLFy/Gs88+i3HjxgEAevfujYiICEyaNAlpaWno06ePY9+/U5199tmYN29ewGN9+/bFgQMHMG/ePLz44ouIjo4GAHz33XeoW7euf1z37t1x3nnnoXPnznjttdcwefLkMud644030K1bN8yZM8f/WJ8+fZCYmIh58+Zh0KBBDn5nzvXjjz/6z7WKXgH7+++/4/HHH8cdd9yBadOmATj1D3+5ubmYPHkyxo4di3POOQcA8Prrr2Pjxo1YvXo1LrroIgCnztX27dtjwoQJ+Prrr/3bvf/++3HWWWdh0aJFiIg49dfPpk2bomvXrnjjjTdw5513AgBiY2Nx4YUX4vjx45XbCYyxoOMVRIwxx+vZsye2bNkScBn3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 truncated
"text/plain": [
"<Figure size 1400x600 with 1 Axes>"
]
@@ -843,7 +871,7 @@
"outputs": [
{
"data": {
"image/png": "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 truncated
"image/png": "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 truncated
"text/plain": [
"<Figure size 1400x600 with 1 Axes>"
]
@@ -853,7 +881,7 @@
}
],
"source": [
"def uniform(μ=MEAN, semiwidth=15, n=N) -> ProbDist: \n",
"def uniform(μ=MEAN, semiwidth=15, n=BAGS) -> ProbDist: \n",
" \"\"\"A ProbDist of n integers chosen uniformly from μ ± semiwidth.\"\"\"\n",
" values = [random.randint(μ - semiwidth, μ + semiwidth) for _ in range(n)]\n",
" return ProbDist(values, 'uniform')\n",
@@ -865,9 +893,10 @@
" X = sorted(P)\n",
" plt.plot(X, [P(x) for x in X], next(markers) + '-', label=P)\n",
" plt.legend()\n",
" \n",
"bimodal = ProbDist(normal(2.5, 92, n=6*N) + normal(2.5, 112, n=4*N), 'bimodal')\n",
"shapes3 = [bimodal, normal(10, n=10*N), uniform(semiwidth=17, n=10*N)] \n",
"\n",
"N = 50_000 # Bigger distributions, to make the plots look smoother\n",
"bimodal = ProbDist(normal(2.5, 92, n=N*6//10) + normal(2.5, 112, n=N*4//10), 'bimodal')\n",
"shapes3 = [bimodal, normal(10, n=N), uniform(semiwidth=17, n=N)] \n",
"plot_shapes(shapes3)"
]
},
@@ -887,7 +916,7 @@
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABJEAAAIhCAYAAAD+VCv9AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAADov0lEQVR4nOzdd1xT1/sH8E9IGGGKTHEATkStojjQuqqI4t5Kxb3rQNxaFbVq3bT6s/VbrbiqHVqt1boFcQ/UarGu4mbLlJ3c3x80VwIBggUB/bz74mVzc+6559yTBO6T55wrEQRBABERERERERERUQF0SrsBRERERERERERU9jGIREREREREREREhWIQiYiIiIiIiIiICsUgEhERERERERERFYpBJCIiIiIiIiIiKhSDSEREREREREREVCgGkYiIiIiIiIiIqFAMIhERERERERERUaEYRCIiIiIiIiIiokIxiERERFSGBQQEQCKR5PsTGBhY2k3USkpKCvz8/EqkvYGBgeXqXOSkavsvv/xS2k3RyuPHj9G1a1dUrFgREokEPj4+Ra5DIpHAz89PfKx6jT9+/LjY2lkWDR8+HA4ODqXdDCIiov9EVtoNICIiosJt27YNTk5OebY7OzuXQmuKLiUlBYsXLwYAtGvXrnQbQ29t2rRpuHz5Mr7//nvY2tqiUqVK/7nOrl274uLFi8VSFxEREZUsBpGIiIjKgfr168PV1bW0m0HlVGpqKgwMDCCRSP5TPXfu3EGzZs3Qq1ev4mkYACsrK1hZWRVbfURERFRyOJ2NiIjoPbB3715IJBJs3LhRbfuiRYsglUpx4sQJANnTkSQSCVatWoVly5ahWrVqMDAwgKurK06dOpWn3gcPHsDLywvW1tbQ19dH3bp18X//9395ysXHx2P69OmoXr069PX1YW1tDU9PT/z99994/PixGCRYvHixOBVv+PDhRT7O33//jc6dO8PQ0BCWlpYYP348kpKStDpHfn5+kEgk+OuvvzB48GCYmZnBxsYGI0eOREJCglhOdY4CAgLy1JF7Kpaqzj///BP9+/eHmZkZKlasCF9fX2RlZeHevXvo3LkzTExM4ODggFWrVmlsW1paGnx9fWFrawu5XI62bdvixo0becpdu3YNPXr0QMWKFWFgYAAXFxf89NNPamVU08OOHz+OkSNHwsrKCoaGhkhPT8/33Dx9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 truncated
"image/png": "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 truncated
"text/plain": [
"<Figure size 1400x600 with 1 Axes>"
]
@@ -897,7 +926,7 @@
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABIgAAAIhCAYAAAAl74HfAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd3xUZdbA8d+dkjLpvQGhg5EioaNIC9LEgr0r6iqu6yq6gusqYAULuq9r2bUL9i4WmoKoVA0gvYbQ0nsyKVPu+8eQkGQqMMmknO/nw7qZubn3mTmZcs89z3kUVVVVhBBCCCGEEEIIIUS7pfH1AIQQQgghhBBCCCGEb0mCSAghhBBCCCGEEKKdkwSREEIIIYQQQgghRDsnCSIhhBBCCCGEEEKIdk4SREIIIYQQQgghhBDtnCSIhBBCCCGEEEIIIdo5SRAJIYQQQgghhBBCtHOSIBJCCCGEEEIIIYRo5yRBJIQQQgghhBBCCNHOSYJICCFEi/fOO++gKIrTf6tXr/b1ED1iNBqZO3duk4x39erVreq5qK927J999pmvh+KRQ4cOMWXKFCIjI1EUhXvvvfeU96EoCnPnzq37ufZv/NChQ14bZ0t0880307lzZ18Pw2vee+89rr76anr16oVGo3H62H766SemT59O7969CQoKIikpiYsvvpg//vijeQdM636vEEII0bR0vh6AEEII4am3336b3r17292ekpLig9GcOqPRyLx58wAYPXq0bwcjTtt9993Hhg0beOutt4iPjychIeGM9zllyhTWrVvnlX2J5rNo0SKys7MZMmQIVqsVk8nkcLtXX32VgoIC/v73v5OSkkJeXh7PP/88w4YNY9myZYwdO7bZxpyamsq6detazfumEEKI5iMJIiGEEK1Gnz59GDRokK+HIVqpyspKAgICUBTljPazfft2hgwZwiWXXOKdgQExMTHExMR4bX/CO0wmE4qioNM5/sq8bNkyNBpbQf6FF17I9u3bHW738ssvExsb2+C2iRMn0r17d5566qlmTRCFhoYybNiwZjueEEKI1kOmmAkhhGgzPvroIxRF4T//+U+D2+fMmYNWq2XFihWAbYqQoig888wzPPnkk3Tq1ImAgAAGDRrEjz/+aLffffv2ce211xIbG4u/vz9nnXUWL7/8st12xcXF3H///XTt2hV/f39iY2OZPHkyu3fv5tChQ3UJgHnz5tVNj7v55ptP+Ti7d+9m4sSJGAwGoqOjufPOOykrK/PoOZo7dy6KorBjxw6uueYawsLCiIuLY/r06ZSUlNRtV/scvfPOO3b7aDw9qnaff/75J1dccQVhYWFERkYyc+ZMzGYze/bsYeLEiYSEhNC5c2eeeeYZh2Orqqpi5syZxMfHExgYyKhRo9i8ebPddr///jsXXXQRkZGRBAQEMGDAAD755JMG29RO2Vq+fDnTp08nJiYGg8FAdXW10+fm8OHDXH/99Q2e/+effx6r1QqcnJqzf/9+fvjhh7oYupoWVlpayu23305UVBTBwcFMnDiRvXv32m3naIrZihUruPjii+nQoQMBAQF0796dO+64g/z8/Aa/643n391jh5N/E8899xwLFy6kS5cuBAcHM3z4cNavX+/wMfXq1atuf++9957D5+jVV1+lf//+BAcHExISQu/evfnnP//p9DmtPxZvvoZr47to0SLuv/9+kpKS8Pf3Z//+/U7HUZsccqdxcgggODiYlJQUjhw54tE+NmzYwNSpU4mKiiIgIIBu3brZTW/89ddfGTduHCEhIRgMBkaMGMF3333XYBtHU8xuvvlmgoOD2b9/P5MnTyY4OJiOHTty//33271mTideQgghWgepIBJCCNFqWCwWzGZzg9sURUGr1QJw9dVX8/PPP3P//fczbNgwBg0axE8//cQTTzzBP//5T8aPH9/gd//zn/+QnJzMiy++iNVq5ZlnnmHSpEn8/PPPDB8+HICdO3cyYsQIOnXqxPPPP098fDzLli3jnnvuIT8/nzlz5gBQVlbGeeedx6FDh5g1axZDhw6lvLycNWvWkJWVxYgRI1i6dCkTJ07k1ltv5bbbbgOoSxp5epycnBxGjRqFXq/nlVdeIS4ujvfff5+77777lJ7Lyy67jKuuuopbb72Vbdu28dBDDwHw1ltvndJ+6rvyyiu5/vrrueOOO1ixYgXPPPMMJpOJlStXctddd/HAAw/wwQcfMGvWLLp37860adMa/P4///lPUlNTeeONNygpKWHu3LmMHj2azZs307VrVwBWrVrFxIkTGTp0KK+99hphYWF89NFHXHXVVRiNxgYJN4Dp06czZcoUFi1aREVFBXq93uHY8/LyGDFiBDU1NTz++ON07tyZb7/9lgceeIADBw7wyiuv1E3NufTSS+nWrRvPPfccgNNpYaqqcskll7B27VoeffRRBg8ezG+//cakSZM8ej4PHDjA8OHDue222wgLC+PQoUMsXLiQ8847j23bttk9ltN9/j157PW9/PLL9O7dmxdffBGARx55hMmTJ5ORkUFYWBhgSw7dcsstXHzxxTz//PN18ayurm6QVPnoo4+46667+Nvf/sZzzz2HRqNh//797Ny506PnyJuv4VoPPfQQw4cP57XXXkOj0ThM7nhDSUkJ6enpHlUPLVu2jKlTp3LWWWexcOFCOnXqxKFDh1i+fHndNj///DPjx4+nX79+vPnmm/j7+/PKK68wdepUPvzwQ6666iqXxzCZTFx00UXceuut3H///axZs4bHH3+csLAwHn30UeDM4yWEEKKFU4UQQogW7u2331YBh/+0Wm2DbauqqtQBAwaoXbp0UXfu3KnGxcWpo0aNUs1mc902GRkZKqAmJiaqlZWVdbeXlpaqkZGRalpaWt1tEyZMUDt06KCWlJQ0OM7dd9+tBgQEqIWFhaqqqupjjz2mAuqKFSucPo68vDwVUOfMmWN3n6fHmTVrlqooirply5YG240fP14F1FWrVjk9vqqq6pw5c1RAfeaZZxrcftddd6kBAQGq1WpVVfXkc/T222/b7aPxY6jd5/PPP99gu3POOUcF1C+++KLuNpPJpMbExKjTpk2ru23VqlUqoKamptYdX1VV9dChQ6per1dvu+22utt69+6tDhgwQDWZTA2OdeGFF6oJCQmqxWJRVfXk38yNN97o8vmoNXv2bBVQN2zY0OD2GTNmqIqiqHv27Km7LTk5WZ0yZYrbff7www8qoP773/9ucPuTTz5p9xzWjjcjI8PhvqxWq2oymdTMzEwVUL/++uu6+870+ff0sdf+TfTt27fB62njxo0qoH744YeqqqqqxWJRExMTncYzOTm57ra7775bDQ8Pd/iYXWmK13Dt3+H5559/yuNRVVWdMmVKg8fmznXXXafqdDr1999/d7ttt27d1G7dujV4rI0NGzZMjY2NVcvKyupuM5vNap8+fdQOHTrUxaL2cdZ/r7jppptUQP3kk08a7HPy5Mlqr1696n4+3XgJIYRoHWSKmRBCiFbjvffeY9OmTQ3+bdiwocE2/v7+fPLJJxQUFJCamoqqqnz44Yd1VUb1TZs2jYCAgLqfQ0JCmDp1KmvWrMFisVBVVcWPP/7IpZdeisFgwGw21/2bPHkyVVVVdVNrfvjhB3r27ElaWtopP65TOc6qVas4++yz6d+/f4N9XHvttad0zIsuuqjBz/369aOqqorc3NxTHn+tCy+8sMHPZ511FoqiNKiY0el0dO/enczMTLvfv/baaxv0B0pOTmbEiBGsWrUKgP3797N7926uu+46ALvnKSsriz179jTY52WXXebR2H/66SdSUlIYMmRIg9tvvvlmVFXlp59+8mg/9dWOu3a8tTyNVW5uLnfeeScdO3ZEp9Oh1+tJTk4GYNeuXXbbn+7zf6qPfcqUKQ1eT/369QOo2+eePXs4fvy403jWN2TIEIqLi7nmmmv4+uuv7abPuePN13AtT/9mzsQjjzzC+++/zwsvvMDAgQNdbrt3714OHDjArbfe2uCx1ldRUcGGDRu4/PLLCQ4Orrtdq9Vyww03cPToUbvXRmOKojB16tQGt/Xr16/B38qZxksIIUTLJgkiIYQQrcZZZ53FoEGDGvxzdHLVvXt3Ro4cSVVVFdddd53TKUDx8fEOb6upqaG8vJyCggLMZjMvvfQSer2+wb/JkycD1J0g5eXl0aFDh9N6XKdynIKCAqfjPhVRUVENfvb39wdsjZxPV2RkZIOf/fz8MBgMdie1fn5+VFVV2f2+s8dVUFAA2KbXATzwwAN2z9Ndd90FYHfC6umqYAUFBQ63TUxMrLv/VBUUFKDT6eyea09iZbVaueCCC/jiiy948MEH+fHHH9m4cWNdMsNRnE73+T/Vx+7ub6d2e0/+Tm+44QbeeustMjMzueyyy4iNjWXo0KF1/cLc8eZruFZTryQ3b948nnjiCZ588kmPpobm5eUBuHx/KSoqQlXVM/obdvS34u/v3+Bv5UzjJYQQomWTHkRCCCHanDfeeIPvvvuOIUOG8J///IerrrqKoUOH2m2XnZ3t8DY/Pz+Cg4PR6/V1V+D/+te/OjxWly5dAFsvoaNHj57WeCMiIjw+TlRUlNNxe1PtiWLjBrWnkyjxlLPHVZuQiI6OBmw9Yhr3L6rVq1evBj97umJZVFQUWVlZdrcfP368wbFPRVRUFGazmYKCggZJFU9itX37drZu3co777zDTTfdVHe7q4bJp8vbj732sXr6d3rLLbdwyy23UFFRwZo1a5gzZw4XXnghe/furauYcsabr+FaZ7rKnSvz5s1j7ty5zJ071+PGzrV9yly9v0RERKDRaLz+N+zImcRLCCFEyyYVREIIIdqUbdu2cc8993DjjTfyyy+/0K9fP6666iqKiorstv3iiy8aXB0vKytjyZIljBw5Eq1Wi8FgYMyYMWzevJl+/frZVS8NGjSo7mR40qRJ7N271+VUJGdVOqdynDFjxrBjxw62bt3aYB8Line truncated
"image/png": "iVBORw0KGgoAAAANSUhEUgAABIgAAAIhCAYAAAAl74HfAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd3xUZdbA8d+dkpn0XgglINXQI92KBEEQ7GUVe0V3XUVfwXUVsIIF3V3rrmsBFLuLWEAUEBVpRppIT6jpPZlMpt33j5CQkGnAJJPJnO/nw7qZ3Ln3mZxp99zznEdRVVVFCCGEEEIIIYQQQgQtjb8HIIQQQgghhBBCCCH8SxJEQgghhBBCCCGEEEFOEkRCCCGEEEIIIYQQQU4SREIIIYQQQgghhBBBThJEQgghhBBCCCGEEEFOEkRCCCGEEEIIIYQQQU4SREIIIYQQQgghhBBBThJEQgghhBBCCCGEEEFOEkRCCCGEEEIIIYQQQU4SREIIIdq8d955B0VRXP5btWqVv4foFZPJxKxZs1pkvKtWrQqov0Vj9WP/5JNP/D0Ur+Tk5DBx4kTi4uJQFIX77rvvhPehKAqzZs1q+Ln+OZ6Tk+OzcbZFN910E127dvX3MHxm/vz5XHPNNfTu3RuNRuPysa1YsYJbbrmFPn36EB4eTseOHbn44ov59ddfW3fABPZ7hRBCiJal8/cAhBBCCG+9/fbb9OnTp9nt6enpfhjNiTOZTMyePRuA8847z7+DESft/vvvZ926dbz11lukpKTQoUOHU97nxIkT+eWXX3yyL9F6FixYQF5eHsOGDcPhcGC1Wp1u99prr1FcXMxf//pX0tPTKSws5IUXXmDEiBEsW7aM888/v9XGnJGRwS+//BIw75tCCCFajySIhBBCBIx+/foxZMgQfw9DBKiamhqMRiOKopzSfrZt28awYcO45JJLfDMwIDExkcTERJ/tT/iG1WpFURR0OudfmZctW4ZGU1eQf9FFF7Ft2zan273yyiskJSU1uW38+PH06NGDp59+ulUTRFFRUYwYMaLVjieEECJwyBQzIYQQ7cYHH3yAoii8/PLLTW6fOXMmWq2W5cuXA3VThBRF4dlnn+Wpp56iS5cuGI1GhgwZwvfff99sv7t37+baa68lKSkJg8HA6aefziuvvNJsu7KyMh544AFOO+00DAYDSUlJTJgwgR07dpCTk9OQAJg9e3bD9LibbrrphI+zY8cOxo8fT1hYGAkJCdx1111UVlZ69TeaNWsWiqLw+++/86c//Yno6GiSk5O55ZZbKC8vb9iu/m/0zjvvNNvH8dOj6ve5ZcsWrrzySqKjo4mLi2PatGnYbDZ27tzJ+PHjiYyMpGvXrjz77LNOx2Y2m5k2bRopKSmEhoZy7rnn8ttvvzXbbuPGjUyePJm4uDiMRiODBw/mo48+arJN/ZStb7/9lltuuYXExETCwsKora11+bc5cOAAU6ZMafL3f+GFF3A4HMCxqTl79uzhm2++aYihu2lhFRUV3H777cTHxxMREcH48ePZtWtXs+2cTTFbvnw5F198MZ06dcJoNNKjRw/uvPNOioqKmtzXF39/T48djj0nnn/+eebNm0e3bt2IiIhg5MiRrF271ulj6t27d8P+5s+f7/Rv9NprrzFw4EAiIiKIjIykT58+/O1vf3P5N208Fl++huvju2DBAh544AE6duyIwWBgz549LsdRnxzy5PjkEEBERATp6ekcPHjQq32sW7eOSZMmER8fj9FopHv37s2mN/7000+MGTOGyMhIwsLCGDVqFF999VWTbZxNMbvpppuIiIhgz549TJgwgYiICDp37swDDzzQ7DVzMvESQggRGKSCSAghRMCw2+3YbLYmtymKglarBeCaa67hhx9+4IEHHmDEiBEMGTKEFStW8OSTT/K3v/2NsWPHNrnvyy+/TFpaGi+99BIOh4Nnn32WCy+8kB9++IGRI0cCsH37dkaNGkWXLl144YUXSElJYdmyZdx7770UFRUxc+ZMACorKznrrLPIyclh+vTpDB8+nKqqKlavXk1ubi6jRo1i6dKljB8/nltvvZXbbrsNoCFp5O1x8vPzOffcc9Hr9bz66qskJyfz3nvv8ec///mE/paXX345V199Nbfeeitbt27l4YcfBuCtt946of00dtVVVzFlyhTuvPNOli9fzrPPPovVauW7777j7rvv5sEHH+T9999n+vTp9OjRg8suu6zJ/f/2t7+RkZHBm2++SXl5ObNmzeK8887jt99+47TTTgNg5cqVjB8/nuHDh/P6668THR3NBx98wNVXX43JZGqScAO45ZZbmDhxIgsWLKC6uhq9Xu907IWFhYwaNQqLxcITTzxB165d+fLLL3nwwQfZu3cvr776asPUnEsvvZTu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 truncated
"text/plain": [
"<Figure size 1400x600 with 1 Axes>"
]
@@ -930,7 +959,7 @@
"outputs": [
{
"data": {
"image/png": "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USOWLFlC7969ady4cY79YmNjzW5zcXHB09MTZ2dnHB0diYiI4LXXXjN7LkOwpnTp0vz333956m+JEiUUn8fX19div/OTIaiQvahzXgIlSlm6LkNAolSpUgBMmjQpR/0ig+rVq5u8Vrpima+vLzExMTm2X7161eTcueHr60tmZiY3b940CaooGasTJ07w559/snz5cl588UXj9nPnzuW6H0r6mZ/XbrhWpZ/TgQMHMnDgQO7evcuuXbuYNm0anTt35syZM8YZU0IIIURRIilmQgghhB04fvw4I0aMoH///uzevZu6devSu3dv4uPjc+z7/fffk5qaanx9584dfvrpJ5o3b46joyMeHh60atWKP/74g7p16xIaGprjl+FhuEOHDpw5c8ZqKpKlWTq5OU+rVq34+++/jbNqDNasWZO3G2aBv78/bm5u/PXXXybbN27cmK/nyWrt2rXodDrj60uXLrFv3z5atmwJ6IM/VatW5c8//zR7j0JDQ/Hy8srTuVu3bs3JkyeJjo422f7VV1+hUqlo1apVrts0HLN69WqT7UrGyhDYMnxmDD7++ONc98OW/L726tWrExAQYHE8LSlWrBgdOnTgzTffJD09nb///jt3FyKEEEI8JDKDSAghhChkJ06cyLGKGUDlypUpXbo0d+/epVevXlSqVImlS5fi4uLCN998Q0hICAMHDuSHH34wOc7R0ZHw8HDGjBmDVqtl7ty5JCYmMn36dOM+77//Pk8++STNmzfn1VdfpWLFity5c4dz587x008/GQNCo0aN4uuvv6Zbt25MnDiRRo0akZKSws6dO+ncuTOtWrXCy8uLChUqsHHjRlq3bk3JkiUpVaoUFStWzNV5vvjiCzp16sTMmTONq5j9888/+XqvVSoV/fr144svvqBy5crUq1ePQ4cO5XsgKqu4uDieeeYZBg0aREJCAtOmTcPNzc24whroAyQdOnSgXbt2DBgwgDJlynDr1i1OnTpFdHQ03377bZ7OPXr0aL766is6derEjBkzqFChAr/88gtLly7l1VdfpVq1arlus23btrRo0YI33niDu3fvEhoayt69e1m5cqXNY2vUqEHlypWZOHEiOp2OkiVL8tNPPxEVFZWXy7Mqv6/dwcGBt99+m1deecU4nrdv3yYyMjJH2tmgQYNwd3enWbNmBAQEEBsbyzvvvIOPjw8NGzbMz8sUQggh8o0EiIQQQohCNnDgQLPbP/30U1555RWGDh3K5cuXOXz4MMWKFQPgiSee4LPPPuO5555j0aJFjBo1ynjc8OHDSU1NZcSIEcTFxVGrVi1++eUXmjVrZtwnKCiI6Oho3n77bd566y3i4uIoXrw4VatWpWPHjsb9vLy82LNnD5GRkXzLine truncated
"image/png": "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 truncated
"text/plain": [
"<Figure size 1400x600 with 1 Axes>"
]
@@ -940,7 +969,7 @@
},
{
"data": {
"image/png": "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B71eD41Ggz///BP33HMP/P39odPpav6NHDkSGo2mJvXljz/+QJs2bTBkyBC775c9x9m9ezc6dOiAzp07m+1j4sSJdh1z7NixZn936tQJGo0GeXl5do/fZPTo0WZ/t2/fHgzDmK148fLyQqtWrZCVlWVx+4kTJ5rV54mLi0OfPn2we/duAMDFixdx9uxZPPzwwwBg8Tjl5OTg3LlzZvu87777BI19165dSEhIQI8ePcwuf+yxx8CyLHbt2iVoP7WZxm0ar4nQucrLy8Ozzz6Lpk2bwsvLCyqVCnFxcQCAM2fOWGxf38ff3vs+atQos9dTp06dAKBmn+fOnUN2djbnfNbWo0cP3Lx5Ew899BA2bdpkkd7GR8zXsInQ54wj5syZg++++w6ffPIJ7rjjDpvbnj9/HpcuXcITTzxhdl9rKy8vx5EjR3D//fcjMDCw5nKlUolHHnkEV69etXht1MUwDMaMGWN2WadOncyeK47OFyGEEOmjABAhhBBJaN++Pbp162b2z9rJU6tWrdCvXz9oNBo8/PDDnCk60dHRVi+rrq5GWVkZCgoKoNPp8N///hcqlcrs38iRIwGg5gToxo0baNKkSb3ulz3HKSgo4By3PcLDw83+9vHxAWAslFxfYWFhZn97e3vD39/f4qTV29sbGo3G4vZc96ugoACAMf0NAGbMmGHxOD333HMAYHFCKrSrVkFBgdVtY2Nja663V0FBAby8vCweayFzZTAYMGzYMGzYsAEzZ87En3/+iZSUlJpghbV5qu/jb+9953vumLYX8jx95JFHsHLlSmRlZeG+++5DZGQkevbsWVOvi4+Yr2ETZ3dimz9/Pt5991289957glI3b9y4AQA231+KiorAsqxDz2FrzxUfHx+z54qj80UIIUT6qAYQIYQQWfnqq6/w22+/oUePHvjss88wYcIE9OzZ02K73Nxcq5d5e3sjMDAQKpWq5hf0559/3uqxWrRoAcBYy+fq1av1Gm9oaKjg44SHh3OOW0ymE8G6BWDrEwgRiut+mQIOERERAIw1WurWDzJp27at2d9CO36Fh4cjJyfH4vLs7GyzY9sjPDwcOp0OBQUFZkETIXOVlpaGEydOYNWqVZg8eXLN5bYKEteX2PfddF+FPk8ff/xxPP744ygvL8e+ffswd+5cjB49GufPn69Z8cRFzNewiaNd4myZP38+5s2bh3nz5gkunGyqE2br/SU0NBQKhUL057A1jswXIYQQ6aMVQIQQQmTj1KlTePHFF/Hoo49i//796NSpEyZMmICioiKLbTds2GD263ZpaSm2bNmCfv36QalUwt/fHwMHDsQ///yDTp06Waw+6tatW83J7ogRI3D+/HmbqUJcq2zsOc7AgQNx+vRLine truncated
"image/png": "iVBORw0KGgoAAAANSUhEUgAABIAAAAIhCAYAAAA2OMErAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd3xUZdbA8d/MpFdIII3eISBNuqAgvYq9YUNdBd1VEQVdFbBj310Vd1/Fhr2DhaZYKFIMPRSBEBASAgkkIT0z9/1jmJCQKXeSO+VOzvf98LqZubn3mXluZuaeOc85BkVRFIQQQgghhBBCCCFEwDL6egBCCCGEEEIIIYQQwrMkACSEEEIIIYQQQggR4CQAJIQQQgghhBBCCBHgJAAkhBBCCCGEEEIIEeAkACSEEEIIIYQQQggR4CQAJIQQQgghhBBCCBHgJAAkhBBCCCGEEEIIEeAkACSEEEIIIYQQQggR4CQAJIQQQgghhBBCCBHgJAAkhBDCp9555x0MBoPDfz///LOvh6hKcXExc+fO9ch4f/75Z109F9XZxv7555/7eiiqHDx4kPHjxxMXF4fBYODee+91ex8Gg4G5c+dW/Ww7xw8ePKjZOP3RzTffTOvWrX09DM289957XHPNNXTq1Amj0ejwsf30009MnTqVzp07ExkZSbNmzbjkkkv4448/vDtg9P1aIYQQwvOCfD0AIYQQAuDtt9+mc+fOtW5PTU31wWjcV1xczLx58wAYOnSobwcj6uy+++5j/fr1LFy4kKSkJJKTk+u9z/Hjx7Nu3TpN9iW85/333yc7O5t+/fphsVioqKiwu92CBQvIzc3lnnvuITU1lePHj/Piiy8yYMAAli1bxsUXX+y1Mffu3Zt169bp5nVTCCGEd0kASAghhF/o1q0bffr08fUwhE6VlJQQFhaGwWCo13527NhBv379mDx5sjYDA5o2bUrTpk0125/QRkVFBQaDgaAg+x+Hly1bhtFoTZafMGECO3bssLvda6+9RkJCQo3bxowZQ/v27Xn66ae9GgCKiYlhwIABXjueEEIIfZElYEIIIXTh448/xmAw8Oqrr9a4fc6cOZhMJlasWAFYl/AYDAaee+45nnrqKVq2bElYWBh9+vThxx9/rLXfP//8k+uuu46EhARCQ0Pp0qULr732Wq3tTp06xf3330/btm0JDQ0lISGBcePGsXv3bg4ePFh1gT9v3ryq5Ws333yz28fZvXs3Y8aMISIigiZNmnDnnXdSWFio6jmaO3cuBoOBnTt3cu211xIbG0tiYiJTp04lPz+/ajvbc/TOO+/U2se5y5ds+9y2bRtXXnklsbGxxMXFMWPGDCorK9mzZw9jxowhOjqa1q1b89xzz9kdW2lpKTNmzCApKYnw8HAuuugiNm/eXGu7TZs2MWnSJOLi4ggLC6NXr158+umnNbaxLalavnw5U6dOpWnTpkRERFBWVubwuTl06BBTpkyp8fy/+OKLWCwW4OzSmX379vHDDz9UzaGzZVsFBQXcfvvtxMfHExUVxZgxY9i7d2+t7ewtAVuxYgWXXHIJzZs3JywsjPbt23PHHXdw4sSJGr+rxfPv6rHD2XPihRde4KWXXqJNmzZERUUxcOBAfv/9d7uPqVOnTlX7e++99+w+RwsWLKBHjx5ERUURHR1N586defjhhx0+p9XHouXfsG1+33//fe6//36aNWtGaGgo+/btczgOW/DHlXODPwBRUVGkpqZy+PBhVftYv349EydOJD4+nrCwMNq1a1dr+eHq1asZPnw40dHRREREMGjQIL777rsa29hbAnbzzTcTFRXFvn37GDduHFFRUbRo0YL777+/1t9MXeZLCCGEfkgGkBBCCL9gNpuprKyscZvBYMBkMgFwzTXX8Msvv3D//fczYMAA+vTpw08//cSTTz7Jww8/zMiRI2v87quvvkqrVq145ZVXsFgsPPfcc4wdO5ZffvmFgQMHApCens6gQYNo2bIlL774IklJSSxbtox//OMfnDhxgjlz5gBQWFjI4MGDOXjwILNmzaJ///6cPn2aX3/9laysLAYNGsTSpUsZM2YMt956K7fddhtAVVBI7XGOHTvGRRddRHBwMK+//jqJiYl88MEH3H333W49l5dffjlXX301t956K9u3b+ehhx4CYOHChW7tp7qrrrqKKVOmcMcdd7BixQqee+45KioqWLlyJdOnT2fmzJl8+OGHzJo1i/bt23PZZZfV+P2HH36Y3r178+abb5Kfn8/cuXMZOnQomzdvpm3btgCsWrWKMWPG0L9/f9544w1iY2P5+OOPufrqqykuLq4RUAOYOnUq48eP5/3336eoqIjg4GC7Yz9+/DiDBg2ivLycJ554gtatW/Ptt98yc+ZM9u/fz+uvv161dObSSy+lXbt2vPDCCwAOl20pisLkyZNZu3Ytjz32GH379mXNmjWMHTtW1fO5f/9+Bg4cyG233UZsbCwHDx7kpZdeYvDgwWzfvr3WY6nr86/msVf32muv0blzZ1555RUAHn30UcaNG0dGRgaxsbGANfhzyy23cMkll/Diiy9WzWdZWVmNoMnHH3/M9OnT+fvf/84LL7yA0Whk3759pKenq3qOtPwbtnnooYcYOHAgb7zxBkaj0W7wRgv5+fmkpaWpyv5ZtmwZEydOpEuXLrz00ku0bNmSgwcPsnz58qptfvnlF0aOHEn37t156623CA0N5fXXX2fixIl89NFHXH311U6PUVFRwaRJk7j11lu5//77+fXXX3niiSeIjY3lscceA+o/X0IIIXRAEUIIIXzo7bffVgC7/0wmU41tS0tLlV69eilt2rRR0tPTlcTEROWiiy5SKisrq7bJyMhQACUlJUUpKSmpur2goECJi4tTRowYUXXb6NGjlebNmyv5+fk1jnP33XcrYWFhSl5enqIoivL4448rgLJixQqHj+P48eMKoMyZM6fWfWqPM2vWLMVgMChbtmypsd3IkSMVQFm1apXD4yuKosyZM0cBlOeee67G7dOnT1fCwsIUi8WiKMrZ5+jtt9+utY9zH4Ntny+++GKN7Xr27KkAypdffll1W0VFhdK0aVPlsssuq7pt1apVCqD07t276viKoigHDx5UgoODldtuu63qts6dOyu9evVSKioqahxrwoQJSnJysmI2mxVFOXvO3HjjjU6fD5vZs2crgLJ+/foat0+bNk0xGAzKnj17qm5r1aqVMn78eJf7/OGHHxRA+de//lXj9qeeeqrWc2gbb0ZGht19WSwWpaKiQsnMzFQA5Ztvvqm6r77Pv9rHbjsnzjvvvBp/Txs2bFAA5aOPPlIURVHMZrOSkpLicD5btWpVddvdd9+tNGrUyO5jdsYTf8O28/DCCy90ezyKoijjx4+v8dhcuf7665WgoCBl06ZNLrdt166d0q5duxqP9VwDBgxQEhISlMLCwqrbKisrlW7duinNmzevmgvb46z+WnHTTTcpgPLpp5/W2Oe4ceOUTp06Vf1c1/kSQgihH7IETAghhF9477332LhxY41/69evr7FNaGgon376Kbm5ufTu3RtFUfjoo4+qsoSqu+yyywgLC6v6OTo6mokTJ/Lrr79iNpspLS3lxx9/5NJLLyUiIoLKysqqf+PGjaO0tLRq6csPP/xAx44dGTFihNuPy53jrFq1iq5du9KjR48a+7juuuvcOuakSZNq/Ny9e3dKS0vJyclxe/w2EyZMqPFzly5dMBgMNTJegoKCaN++PZmZmbV+/7rrrqtRn6dVq1YMGjSIVatWAbBv3z52797N9ddfD1DrecrKymLPnj019nn55ZerGvtPP/1Eamoq/fr1q3H7zTffjKIo/PTTT6r2U51t3Lbx2qidq5ycHO68805atGhBUFAQwcHBtGrVCoBdu3bV2r6uz7+7j338+PE1/p66d+8OULXPPXv2cPToUYfzWV2/fv04deoU1157Ld98802t5W2uaPk3bKP2nKmPRx99lA8++ICXX36Z888/3+m2e/fuZf/+/dx66601Hmt1RUVFrF+/niuuuIKoqKiq200mEzfccAN//fVXrb+NcxkMBiZOnFjjtu7du9c4V+o7X0IIIfyfBICEEEL4hS5dutCnT58a/+xdPLVv354hQ4ZQWlrK9ddf73CJTlJSkt3bysvLOX36NLm5uVRWVvKf//yH4ODgGv/GjRsHUHUBdPz4cZo3b16nx+XOcXJzcx2O2x3x8fE1fg4NDQWshZLrKi4ursbPISEhRERE1LpoDQkJobS0tNbvO3pcubm5gHX5G8DMmTNrPU/Tp08HqHVBqrarVm5urt1tU1JSqu53V25uLkFBQbWeazVzZbFYGDVqFF9++SUPPvggP/74Ixs2bKgKVtibp7o+/+4+dlfnjm17NefpDTfcwMKFC8nMzOTyyy8nISGB/v37V9XrckXLv2EbT3dimzdvHk8++SRPPfWUqqWbx48fB3D6+nLy5EkURanXOWzvXAkNDa1xrtR3voQQQvg/qQEkhBBCV958802+++47+vXrx6uvvsrVV19N//79a22XnZ1t97aQkBCioqIIDg6u+gb9rrvusnusNm3aANZaPn/99Vedxtu4cWPVx4mPj3c4bi3ZLgTPLQBbl0CIWo4ely3g0KRJE8Bao+Xc+kE2nTp1qvGz2o5f8fHxZGVl1br96NGjNY7tjvj4eCorK8nNza0RNFEzVzt27GDr1q2888473HTTTVW3OytIXFdaP3bbY1V7nt5yyy3ccsstFBUV8euvvzJnzhwmTJjA3r17qzKeHNHyb9imvl3inJk3bx5z585l7ty5qgsn2+qEOXt9ady4MUajUfNz2J76zJcQQgj/JxlAQgghdGP79u384x//4MYbb+S3336je/fuXH311Zw8ebLWtl9++WWNb7cLCwtZsmQJQ4YMwWQyERERwbBhw9i8eTPdu3evlX3Up0+fqovdsWPHsnfvXqdLhRxl2bhznGHDhrFLine truncated
"text/plain": [
"<Figure size 1400x600 with 1 Axes>"
]
@@ -997,7 +1026,7 @@
"outputs": [
{
"data": {
"image/png": "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 truncated
"image/png": "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 truncated
"text/plain": [
"<Figure size 1400x600 with 1 Axes>"
]
@@ -1007,7 +1036,7 @@
},
{
"data": {
"image/png": "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 truncated
"image/png": "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 truncated
"text/plain": [
"<Figure size 1400x600 with 1 Axes>"
]
@@ -1035,25 +1064,14 @@
"execution_count": 32,
"id": "6a60fe57-e387-4aa4-9e7e-52ff51992b46",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"True"
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"def dominates(S1: Strategy, S2: Strategy, P, coins=COINS) -> bool:\n",
" \"\"\"Is strategy S1 always as good or better than S2?\"\"\"\n",
" \"\"\"Is strategy S1 always as good or better than S2 on distrib ution P?\"\"\"\n",
" return all(E(P, S1, c) >= E(P, S2, c) for c in coins)\n",
" \n",
"all(dominates(optimal_strategy(P), best_cutoff_strategy(P), P)\n",
" for P in [stock1, stock10, stock33] + shapes3)"
"for P in [stock1, stock10, stock33] + shapes3:\n",
" assert dominates(optimal_strategy(P), best_cutoff_strategy(P), P)"
]
},
{
@@ -1065,7 +1083,7 @@
"source": [
"# How many peeks are required?\n",
"\n",
"How many bags do we have to peek at to get a good sampling of the stockpile? I arbitrarily set a default of 1,000. But how much worse would we do with fewer peeks? How much better could we do with more peeks? Let's see:"
"How many bags do we have to peek at to get a good sampling of the stockpile? I arbitrarily set a default of 100. But how much worse would we do with fewer peeks? How much better could we do with more peeks? Let's see:"
]
},
{
@@ -1076,7 +1094,7 @@
"outputs": [
{
"data": {
"image/png": "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 truncated
"image/png": "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ffv20bx5c4KCghg4cCAtWrTQqBcbG5tvmYGBAWZmZujr66Orq4ufnx8ffPBBvn2pAjq2trb89ddfJRpvhQoVtO7HxsamwHGXJlXgIW8i6pIEU7RV0H6pghYVK1YEYMaMGRr5lFTq1Kmj9lrbJ7HZ2NgQExOjUf7w4UO1vovDxsaGrKwsnj59qhZ40eZc3bx5k99++43169czbNgwuTwiIqLY49BmnKW576p91fZzOmLECEaMGEFycjKnTp1izpw59OzZk99//12eeSUIgiAIbxKxnE0QBEEQ/iVu3LjBpEmTePfddzl9+jQNGjRg4MCBxMfHa9TdsWMHaWlp8usXL17w66+/0rZtW3R1dTExMaFjx45cu3aNBg0a4OHhofGj+sLcrVs3fv/990KXPRU026c4/XTs2JFbt27Js3NUfv7555IdsALY29tjZGTE9evX1cp3795dqv3ktnnzZiRJkl/fv3+fc+fO0aFDByAnQFSrVi1+++23fI+Rh4cH5ubmJeq7U6dOhIWFcfXqVbXyH3/8EYVCQceOHYvdpmqbTZs2qZVrc65UwS/VZ0Zl1apVxR5HUUp73+vUqUOlSpUKPJ8FMTU1pVu3bsyaNYuMjAxu3bpVvB0RBEEQhFdEzEQSBEEQhHLg5s2bGk9nA6hRowa2trYkJyfj6+uLs7Mzy5cvx8DAgG3bttGkSRNGjBjBrl271LbT1dWlS5cuTJ06FaVSyRdffEFiYiJz586V63zzzTe0adOGtm3bMm7cOJycnHjx4gURERH8+uuvctDI39+frVu30rt3b6ZPn07z5s1JTU3l5MmT9OzZk44dO2Jubk716tXZvXs3nTp1wtramooVK+Lk5FSsfn744Qd69OjBp59+Kj+d7fbt26V6rBUKBe+88w4//PADNWrUoGHDhly8eLHUg1W5xcXF0bdvX0aPHk1CQgJz5szByMhIfnIc5ARRunXrRteuXRk+fDiVK1fm2bNnhIeHc/XqVX755ZcS9T1lyhR+/PFHevTowbx586hevTr79u1j+fLljBs3jtq1axe7TS8vL9q1a8fHH39McnIyHh4enD17lp9++qnIbV1dXalRowbTp09HkiSsra359ddfCQ4OLsnuFaq0911HR4f58+czatQo+Xw+f/6cwMBAjSVuo0ePxtjYmNatW1OpUiViY2P57LPPsLS0pFmzZqW5m4IgCIJQakQQSRAEQRDKgREjRuRbvmbNGkaNGsX7779PdHQ0ly5dwtTUFAAXFxe+//573n77bZYuXYq/v7+83YQJE0hLS2PSpEnExcVRr1499u3bR+vWreU6bm5uXL16lfnz5/N///d/xMXFYWVlRa1atejevbtcz9zcnDNnzhAYGMjq1auLine truncated
"text/plain": [
"<Figure size 1400x600 with 1 Axes>"
]
@@ -1086,7 +1104,7 @@
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABIgAAAIhCAYAAAAl74HfAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd3hU1dYG8PdMSS+kTggJGDpIC4QkdBAIXYoKKCoR6+e9KgJXBZQixXJFQVGKVwRRsZIEVIRQBOk9EEKXhJpKept2vj/iREIyhWQyLe/veXh05uycs87sScgs9lpbEEVRBBERERERERERNVgSawdARERERERERETWxQQREREREREREVEDxwQREREREREREVEDxwQREREREREREVEDxwQREREREREREVEDxwQREREREREREVEDxwQREREREREREVEDxwQREREREREREVEDxwQREREREREREVEDxwQRERHZvLVr10IQBL1//vjjD2uHaJKSkhLMmzevXuL9448/7Oq1uJMu9p9++snaoZgkNTUVI0aMgK+vLwRBwNSpU+/5HIIgYN68eZWPde/x1NRUs8Vpi2JjY3HfffdZOwyz+eqrrzBx4kS0adMGEolE773t3LkTU6ZMQdu2beHu7o4mTZpg9OjROHbsmGUDhn3/rCAiovols3YAREREpvryyy/Rtm3bas+3b9/eCtHcu5KSEsyfPx8A0L9/f+sGQ7X26quv4tChQ1izZg2CgoLQuHHjOp9zxIgROHDggFnORZazfv16pKenIzIyElqtFiqVqsZxK1asQE5ODl555RW0b98eWVlZWLJkCaKjo7F161Y88MADFou5a9euOHDggN383CQiIsthgoiIiOxGhw4dEBERYe0wyE6VlpbCxcUFgiDU6TzJycmIjIzEmDFjzBMYgICAAAQEBJjtfGQeKpUKgiBAJqv5V+atW7dCIqlYkD9y5EgkJyfXOO7TTz9FYGBgleeGDh2Kli1bYvHixRZNEHl5eSE6Otpi1yMiIvvBEjMiInIY3333HQRBwPLly6s8P3fuXEilUiQmJgKoKBESBAHvv/8+Fi1ahKZNm8LFxQURERHYsWNHtfNevHgRjz32GAIDA+Hs7Ix27drh008/rTYuLy8P06dPR/PmzeHs7IzAwEAMHz4c586dQ2pqamUCYP78+ZXlcbGxsfd8nXPnzmHo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 truncated
"image/png": "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cMMN+Pr6Yjaby/8bOXIkRUVF5aU1S5cupW3btgwZMqTa76s651m9ejWdOnWiW7duFY5x2223Veuc119/fYWvu3btSlFREWlpadWev9Xo0aMrfN2hQwc0Gk2FjBm9Xk/r1q05efJkpdffdtttFfoDNWvWjP79+7N69WoAjh49ysGDB5k0aRJApc8pOTmZQ4cOVTjmjTfeqGruq1atomPHjvTp06fC45MnT0ZRFFatWqXqOJeyzts6Xyu11yotLY2//e1vNGnSBL1ej8FgoFmzZgAcOHCg0vgr/fyr+95HjRpV4fupa9euAOXHPHToEOfOnbN5PS/Vp08fsrKyuPXWW0lKSqpUPueIM7+HrdTeMzXxz3/+kwULFvC///2Pnj172h17+PBhjh07xr333lvhvV4qPz+fTZs2cdNNN+Hv71/+uE6n44477uDMmTOVvjcup9FoGDNmTIXHunbtWuFeqen1EkII4d4kQCSEEMJjdOjQgV69elX4r6rFVevWrbnqqqsoKipi0qRJNkuAoqOjq3zMZDKRl5fH+fPnMZvNvP322xgMhgr/jRw5EqB8gZSenk5sbOwVva/qnOf8+fM2510dYWFhFb729vYGyho5X6nQ0NAKX3t5eeHr61tpUevl5UVRUVGl19t6X+fPnwfKyusAnnrqqUqf08MPPwxQacGqdlew8+fPVzk2Jiam/PnqOn/+PHq9vtJnreZaWSwWEhIS+P7773n66af59ddf2bx5c3kwo6rrdKWff3Xfu6N7xzpezX16xx138Mknn3Dy5EluvPFGIiMjiY+PL+8X5ogzv4etansnuZkzZ/LSSy8xe/ZsVaWh6enpAHZ/vmRmZqIoSo3u4aruFW9v7wr3Sk2vlxBCCPcmPYiEEELUOx999BE//fQTffr04Z133mHixInEx8dXGpeSklLlY15eXvj7+2MwGMr/Av9///d/VZ6rRYsWQFkvoTNnzlzRfENCQlSfJywszOa8ncm6ULy8Qe2VBErUsvW+rAGJ8PBwoKxHzOX9i6zatWtX4Wu1O5aFhYWRnJxc6fFz585VOHd1hIWFYTabOX/+fIWgipprtXfvXnbt2sVnn33GXXfdVf64vYbJV8rZ7936XtXep3fffTd33303+fn5rF27lhdeeIHRo0dz+PDh8owpW5z5PWxV013u7Jk5cyYzZsxgxowZqhs7W/uU2fv5EhISglardfo9XJWaXC8hhBDuTTKIhBBC1Ct79uzhscce484772TdunV07dqViRMnkpmZWWns999/X+Gv47m5uSxZsoSrrroKnU6Hr68v1157LTt27KBr166Vspd69epVvhgeMWIEhw8ftluKZCtLpzrnufbaa9m3bx+7du2qcIwvv/zLine truncated
"text/plain": [
"<Figure size 1400x600 with 1 Axes>"
]
@@ -1096,7 +1114,7 @@
}
],
"source": [
"plot_E([stock33], ks=(10_000, 1000, 100, 10))"
"plot_E([stock33], peeks=(10_000, 1000, 100, 10, 3))"
]
},
{
@@ -1104,9 +1122,9 @@
"id": "eaae39f7-3246-4b35-b4b0-4d7967a5d673",
"metadata": {},
"source": [
"There is hardly any difference between 10,000 samples and 100 samples! **I found this very surprising!** \n",
"There is hardly any difference between 10,000 peeks and 100 peeks! **I found this very surprising!** \n",
"\n",
"We have to go all the way down to 10 samples before we see a noticable dropoff in expected value. I guess this is saying that 100 samples is enough to get the general idea that the distribution has a mean of somewhere near 100, and a standard deviation somewhere near 33.\n",
"We have to go all the way down to 10 peeks (and then 3) before we see a noticable dropoff in expected value. I guess this is saying that 100 samples is plenty to get the general idea that the distribution has a mean of somewhere near 100, and a standard deviation somewhere near 33.\n",
"\n",
"Maybe there would be more of a difference if the distribution was harder to predict. Maybe the bimodal distribution?"
]
@@ -1119,7 +1137,7 @@
"outputs": [
{
"data": {
"image/png": "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 truncated
"image/png": "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 truncated
"text/plain": [
"<Figure size 1400x600 with 1 Axes>"
]
@@ -1129,7 +1147,7 @@
},
{
"data": {
"image/png": "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 truncated
"image/png": "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xx9/cO211+Lh4UFZWVnlfxMmTKC0tLRyas2vv/5K+/btGTVqVK2fV22Os3r1ajp37kz37t2r7OOWW26p1TGvvvrqKj9369aN0tJS0tPTax1/hSuvvLLKzx07dkSj0VQZMePi4kK7du1ISUmp9vhbbrmlSn+gmJgYBg4cyOrVqwFISkri0KFD3HrrrQDVfk+pqakcPny4yj6vv/56VbGvWrWKTp060bdv3yq3T506FUVRWLVqlar9XKgi7op4K6jNVXp6On/7299o1aoVLi4u6PV6YmJiADh48GC17S/191/b5z5x4sQqr6du3boBVO7z8OHDnDlzxmY+L9S3b19yc3O5+eabWbx4cbXpc47U5Wu4gtq/mcvx73//m2+++Yb/+7//o1evXna3PXLkCEePHuWee+6p8lwvVFRUxObNm7nhhhvw8vKqvF2n03H77bdz6tSpaq+Ni2k0Gq666qoqt3Xr1q3K38rl5ksIIUTjJgUiIYQQTUbHjh3p3bt3lf9qurhq164dQ4YMobS0lFtvvdXmFKCwsLAabzOZTBQWFpKVlUVZWRnvv/8+er2+yn8TJkwAqLxAysjIICoq6pKeV22Ok5WVZTPu2ggMDKzys8FgAMobOV+qgICAKj+7urri4eFR7aLW1dWV0tLSao+39byysrKA8ul1AE899VS139NDDz0EUO2CVe2qYFlZWTVuGxERUXl/bWVlZeHi4lLtd60mV1arlTFjxvDTTz/x9NNP88cff7Bly5bKYkZNebrU339tn7ujv52K7dX8nd5+++3Mnj2blJQUrr/+ekJCQujXr19lvzBH6vI1XKG+V5KbMWMGr7zyCjNnzlQ1NTQjIwPA7vtLTk4OiqJc1t9wTX8rBoOhyt/K5eZLCCFE4yY9iIQQQjQ7n3/+OUuXLqVv37588MEHTJkyhX79+lXbLi0trcbbXF1d8fLyQq/XV34D//e//73GY7Vp0wYo7yV06tSpS4rX399f9XECAwNtxl2XKi4UL25QeymFErVsPa+KgkRQUBBQ3iPm4v5FFeLj46v8rHbFssDAQFJTU6vdfubMmSrHro3AwEDKysrIysqqUlRRk6t9+/axe/du5syZw5133ll5u72GyZeqrp97xXNV+3d61113cdddd1FUVMTatWt58cUXufLKKzly5EjliClb6vI1XOFyV7mzZ8aMGUyfPp3p06erbuxc0afM3vuLv78/Wq22zv+Ga3I5+RJCCNG4yQgiIYQQzcrevXt55JFHuOOOO1i3bh3dunVjypQp5OTkVNv2p59+qvLteEFBAUuWLGHIkCHodDo8PDwYPnw4O3fupFu3btVGL/Xu3bvyYnj8+PEcOXLE7lQkW6N0anOc4cOHs3//fnbLine truncated
"text/plain": [
"<Figure size 1400x600 with 1 Axes>"
]
@@ -1139,7 +1157,7 @@
}
],
"source": [
"plot_E([bimodal], ks=(10_000, 1000, 100, 10))"
"plot_E([bimodal], peeks=(10_000, 1000, 100, 10, 3))"
]
},
{
@@ -1147,7 +1165,7 @@
"id": "3cf2483c",
"metadata": {},
"source": [
"Still not much difference. \n",
"Still not much difference until we get down to just 3 peeks. \n",
"\n",
"Let's try a distribution that is even more skewed: the distribution from Bernoulli's [St. Petersburg Paradox](https://en.wikipedia.org/wiki/St._Petersburg_paradox), in which the the payoff is $2^d$ with probability $2^{-d}$ for all values of $d$ from 1 up to a limit."
]
@@ -1161,20 +1179,22 @@
{
"data": {
"text/plain": [
"ProbDist({2: 8192,\n",
" 4: 4096,\n",
" 8: 2048,\n",
" 16: 1024,\n",
" 32: 512,\n",
" 64: 256,\n",
" 128: 128,\n",
" 256: 64,\n",
" 512: 32,\n",
" 1024: 16,\n",
" 2048: 8,\n",
" 4096: 4,\n",
" 8192: 2,\n",
" 16384: 1})"
"ProbDist({2: 32768,\n",
" 4: 16384,\n",
" 8: 8192,\n",
" 16: 4096,\n",
" 32: 2048,\n",
" 64: 1024,\n",
" 128: 512,\n",
" 256: 256,\n",
" 512: 128,\n",
" 1024: 64,\n",
" 2048: 32,\n",
" 4096: 16,\n",
" 8192: 8,\n",
" 16384: 4,\n",
" 32768: 2,\n",
" 65536: 1})"
]
},
"execution_count": 35,
@@ -1183,11 +1203,12 @@
}
],
"source": [
"def st_pete(limit=14) -> ProbDist:\n",
"def st_pete(limit=16) -> ProbDist:\n",
" \"\"\"The St. Petersburg distribution.\"\"\"\n",
" return ProbDist({2 ** i: 2 ** (limit - i) for i in range(1, limit + 1)}, 'St_Pete')\n",
"\n",
"st_pete()"
"S = st_pete()\n",
"S"
]
},
{
@@ -1195,25 +1216,7 @@
"id": "ab87d632-c268-46ff-9a7b-70ca6aafba51",
"metadata": {},
"source": [
"The mean of this distribution is equal to the `limit` (by default 14):"
]
},
{
"cell_type": "code",
"execution_count": 36,
"id": "f2363afd-f898-4ff5-846b-b3814c306b33",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"St_Pete[μ=14.0, σ=180.5, n=16,383]\n"
]
}
],
"source": [
"print(st_pete())"
"The mean of this distribution is equal to the `limit` (by default 16):"
]
},
{
@@ -1221,12 +1224,12 @@
"id": "525b0c9a-dc51-4864-a918-2d4e75112452",
"metadata": {},
"source": [
"I'll compare 10,000 peeks to two mid-size sets of peeks (101 and 100), and two small sizes (11 and 10). There is a lot of variatioon from one run to the next, so I'll set the random seed to a value that gives a representative result, but you can rerun the cell to get different plots:"
"I'll compare 10,000 peeks to two mid-size sets of peeks (101 and 100), and two small sizes (11 and 10). There is a lot of variation from one run to the next, so I'll set the random seed to a value that gives a representative result, but you can rerun the cell to get different plots:"
]
},
{
"cell_type": "code",
"execution_count": 37,
"execution_count": 36,
"id": "f9038f93",
"metadata": {},
"outputs": [],
@@ -1236,13 +1239,13 @@
},
{
"cell_type": "code",
"execution_count": 38,
"execution_count": 37,
"id": "08c9d6b4-a31a-4d90-8dad-8d86fa6a33c8",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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 truncated
"image/png": "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 truncated
"text/plain": [
"<Figure size 1400x600 with 1 Axes>"
]
@@ -1252,7 +1255,7 @@
},
{
"data": {
"image/png": "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/eu/DgkJwaRJk/DDDz/AZDKhqqoK3377La6//noEBgairq6u/p+rr74aVVVV9aUv33zzDXr27Ilx48Y5/LwceZzvv/8effr0Qf/+/RsdY+rUqQ495uTJkxt93a9fP1RVVSE/P9/h87e65pprGn198cUXQ5KkRjtefHx80L17d2RnZzf7/qlTpzbqz5OQkIDhw4fj+++/BwAcP34chw8fxq233goAzV6nnJwcHDlypNExb7zxRqFz/+6775CcnIyUlJRGt99xxx2QZRnfffed0HEasp639XytRK9Vfn4+HnjgAXTu3Bk+Pj7w9fVFQkICAODQoUPN1rf09Xf0uU+cOLHRz1O/fv0AoP6YR44cwZkzZ+xez4ZSUlJQXFyMW265BWvWrGlW3qZGy59hK9H3TGv84x//wAcffIBXXnkFl112meLao0eP4sSJE7j77rsbPdeGysvLsXPnTvzpT39CcHBw/e16vR5/+ctf8McffzT72WhKkiRMmjSp0W39+vVr9F5p7fUiIiL3xwCIiIjcwsUXX4xBgwY1+sfWh6fu3btj1KhRqKqqwq233mq3RCc2NtbmbTU1NSgrK0NBQQHq6urwf//3f/D19W30z9VXXw0A9R+Azp49i4suuqhFz8uRxykoKLB73o6IjIxs9LXBYABgaZTcUhEREY2+9vPzQ2BgYLMPrX5+fqiqqmr2/faeV0FBAQBL+RsAPPHEE81epxkzZgBAsw+kolO1CgoKbK6Nj4+vv99RBQUF8PHxafZai1wrs9mM8ePHY/Xq1Zg1axa+/fZbZGRk1IcVtq5TS19/R5+72nvHul7kffqXv/wF77zzDrKzs3HjjTciOjoaQ4YMqe/XpUbLn2Grtp7Elp6ejvnz5+P5558XKt08e/YsACj++VJUVARZllv1Hrb1XjEYDI3eK629XkRE5P7YA4iIiDzKf//7X3z99ddISUnBq6++iilTpmDIkCHN1uXm5tq8zc/PD8HBwfD19a3/G/QHH3zQ5mMlJiYCsPTy+eOPP1p0vh06dBB+nMjISLvnrSXrB8GmDWBbEoSIsve8rIFDx44dAVh6tDTtH2TVq1evRl+LTvyKjIxETk5Os9vPnDnT6LEdERkZibq6OhQUFDQKTUSu1f79+7Fv3z68++67uP322+tvV2pI3FJaP3frcxV9n95555248847UV5ejh9++AFz587FNddcg6NHj9bveLJHy59hq9ZOiVOSnp6OefPmYd68ecKNk619wpT+fOnQoQN0Op3m72FbWnO9iIjI/XEHEBEReYxff/0VDz/8MG677TZs3boV/fr1w5QpU1BUVNRs7erVqxv97XZpaSnWrl2LUaNGQa/XIzAwEGPHjsXPP/+Mfv36NdtLine truncated
"image/png": "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 truncated
"text/plain": [
"<Figure size 1400x600 with 1 Axes>"
]
@@ -1262,7 +1265,7 @@
}
],
"source": [
"plot_E([st_pete()], ks=(10_000, 101, 100, 11, 10))"
"plot_E([st_pete()], peeks=(10_000, 101, 100, 11, 10, 3))"
]
},
{
@@ -1270,20 +1273,20 @@
"id": "a40fd3a5-6644-4dcd-90ef-74ca276fe186",
"metadata": {},
"source": [
"The collection of 10,000 peeks gives a very good estimate of the mean and standard deviation, but the smaller samples severely underestimate both the mean and the standard deviation of the distribution, and therefore don't yield as many diamonds.\n",
"The collection of 10,000 peeks gives a very good estimate of the mean and standard deviation, but the smaller samples severely underestimate both the mean and the standard deviation of the distribution, and this misrepresentation of the true distribution leads to a yield of fewer diamonds.\n",
"\n",
"Let's see what the optimal strategy looks like for this distribution. "
]
},
{
"cell_type": "code",
"execution_count": 39,
"execution_count": 38,
"id": "fb65b4e2-2861-46c7-9d38-ddc9d6184002",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABIAAAAIhCAYAAAA2OMErAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAACboElEQVR4nO3deXiU5fm38e8EQkggYRVI2MENZBEFNxBxAbWgaKo/FLWgtWqVKtq64BrUgqAC7tZ9RVELuAuokNrigooW1GrdQFlEXAKyCeR+/+DNNGMCCTFkruuZ8zyOHMrkzuSTeWaSyZWZe2IhhCAiIiIiIiIiIopsackGEBERERERERHRjo0BEBERERERERFRxGMAREREREREREQU8RgAERERERERERFFPAZAREREREREREQRjwEQEREREREREVHEYwBERERERERERBTxGAAREREREREREUU8BkBERERERERERBGPARARJfTUU08pFotpypQpZd7XvXt3xWIxzZgxo8z7OnbsqL322iv+71gsphEjRuxQ6/Y0d+5cFRQU6Mcff0w2Zas98MADisVi+vLLL+OnDR8+XO3atavwY/v166cuXbrsOJyhzxuLxVRQUBD/94cffqiCgoKEy62kZF0uW2vp0qUqKCjQe++9V+Z9BQUFisViNY+SNGfOHMViMc2ZM+dXn9cLL7yQcHyqu9tvv10PPPDADjt/j7355ps69thj1aZNG2VkZKh58+baf//99ec//zlh3a+57Pr166dYLBZ/y8zMVPfu3TVp0iQVFxdv13mtXbtWBQUFv+r6VvL9suRt5cqVVT6vqnT55Zdr0KBBatmypWKxmIYPH16pjzv55JMVi8U0aNCgSn+ud999V4cddpjq16+vhg0bKj8/X59//nkV5TXTpEmTlJ+fr/bt2ysWi6lfv35bXTt79mz1799fzZo1U/369dWtWzfdfPPN2rx5c5m1L7/8svbff39lZWWpadOmGj58uFasWFEpU7t27RKuMyVvZ511VlW/zB3e6tWrddFFF2nAgAHaaaedyvz8+2UbN27UhAkT1LVrV2VmZqphw4Y64IADNHfu3Ao/180336z99ttPTZs2VUZGhtq0aaMTTjhBH3zwQZm1y5cv14gRI9ShQwdlZmaqbdu2+v3vf6/FixcnrHv55ZfVv39/5eXlKSMjQ82aNdMhhxyiF154ocx57rnnnvFjsj23DyLavhgAEVFCJXfyZ8+enXD6999/rwULFqhevXpl3vf111/r888/18EHH1yT1O1q7ty5Gj16tOkBEFWu119/Xaeffnr83x9++KFGjx5d7gDIWkuXLtXo0aPLHQCdfvrpev3112seVc298MILGj169A47fwZAiT3//PM64IADtGrVKo0fP14zZ87UTTfdpN69e5cZ5P/ay65Dhw56/fXX9frrr2vKlClq2bKlzj//fI0aNWq7zmft2rUaPXp0tQwcp06dqtdff10NGzb81ee1PU2cOFHfffedjj76aNWpU6dSH/P8889r+vTpysnJqfTn+c9//qN+/frp559/1hNPPKH77rtPn3zyiQ488EB9++23VeXv8O68804tWrRIhxxyiHbaaaetrnv55Zd12GGHadOmTbr77rs1ffp09evXT+edd54uuOCChLWFhYU68sgj1bx5cz399NO66aab9PLLL+vQQw/Vhg0bKuXq3bt3/Dpc8nbxxRf/qq91R/bdd9/prrvu0oYNG3TMMcdsc+3mzZt17LHH6uqrr9aJJ56oF198UY8++qiOOOIIrVmzplKf68gjj9Q999yjmTNnavTo0Zo/f7723Xdfffzxx/F1GzZsUN++fTVlyhT95S9/0YsvvqhLL700/r1o9erVCee5xx57aOLEiZo5c6b+9re/KT09XQMHDtQjjzyS8Pkffvhhvf7662rRosX2XUhEtF3VTjaAiGzVtGlTdenSpcwd88LCQtWuXVu///3vywyASv5teQBE0Wm//fZLNmGH1KpVK7Vq1SrZjBothKD169crMzMz2RS3jR8/Xu3bt9eMGTNUu/b/7tadcMIJGj9+fLV+rszMzITb35FHHqndd99dt956q6699lqlp6dX6+erTD169KjUoySru9WrVystbcvfUR9++OEK1xcVFenMM8/UNddco5tuuqnSn+fKK69URkaGnnvuufjgaO+999Yuu+yiG264QePGjavaF7CD+/DDD+OXz7YehfnAAw8oPT1dzz33nOrVqydJOuyww/Txxx/rgQceSLisLrzwQu2666566qmn4tf19u3bq3fv3rrvvvv0xz/+sUJXw4YNXf0Madu2rX744Yf4o9zuueeera695ZZb9OKLL+pf//pXwtc4cODASn2uXw7uDzroIO23337q3LmzHn30UV199dWSpNdee03//e9/dc899+j3v/+9pC1/PMzJydHQoUP18ssv69hjj5UkDRkyREOGDEk430GDBql9+/a66667dPLJJ8dP79q1qyQpIyOjUl4iqlo8AoiIynTwwQfr448/1rJly+KnzZkzR7169dJvfvMbvfPOOwl/4ZkzZ45q1aqlAw88sMx5Pfzww+rUqZOysrLUvXt3Pffcc2XW/Pe//9XQoUPVrFkzZWRkqFOnTrrtttsS1pQ8ReWxxx7TZZddpry8POXk5MTvKG6rgoICXXjhhZIUfzh66ae7FBcXa/z48dp9993jD1H+3e9+p6+//rrCy+rbb7/VGWecodatWysjI0M77bSTevfurZdffjlhXclfKXNycpSVlaXevXvrlVdeqfD8t7fXXntN++23nzIzM9WyZUtdccUVZR5GP3r0aO27775q3LixcnJytNdee+nee+9VCKHM+U2ePFn777+/6tevr/r162vPPffUvffeu03DtGnTlJWVpdNPP12bNm0qd81tt92mtLS0hIfu33jjjYrFYjrnnHPipxUXF6tRo0YJT2Up/RD4Bx54QMcff7ykLdfbkmP7y0c5zJs3TwceeKCysrLUoUMHXXfddZV62sr69es1atQotW/fXnXq1FHLli11zjnnlHkkWbt27TRo0CBNmzZN3bp1U926ddWhQwfdfPPN8TUltyFJOvXUU+PWkq+lvKeAlZzvc889px49eigzM1OdOnWK344eeOABderUSfXq1dM+++yjt99+O+Hj3377bZ1wwglq166dMjMz1a5dO5144olatGhRhV97ea1du1Z/+ctf1L59e9WtW1eNGzdWz5499dhjj0na8pTFkttu6adYlDw6q+SpoXfeeac6deqkjIwMPfjgg5Iqd71s166dPvjgAxUWFsbPu/Qv/6tWrYr7So7XyJEjy/z1+8cff9Tvf/97NW7cWPXr19fAgQP1+eefJxyP1157Lf4955c99NBDisVimjdv3jYvr4ULF2rw4MFq1KiR6tatqz333DP+9Zb0a763SVv+wt60adOE4U9JJb+ASxVfdlUpPT1de++9t9auXRt/NMry5ct15plnqlWrVqpTp47at2+v0aNHx78XfPnll/FHhIwePTpuKf0Uqsr8TNhW7dq1K/cpWf369dvmU5G2p9KXbWX685//rNzcXJ177rmV/phNmzbpueee029/+9uERw21bdtWBx98sKZNm7ZdhpJCCJo4caI6d+6sunXrlnlKVHUM1Cp7+aSnp6tOnTplhsANGzZU3bp14/9esmSJ5s2bp1NOOSXhun7AAQdo1113rfJl8Wsr+R790ksvaa+99lJmZqZ233133XfffdVy/iXHpDLddNNN6tu3b7UOuEpuq6Uv85JBb4MGDRLWljwKr/RxK6/09HQ1bNiw3O9ZRFQDBSKiXzRt2rQgKUyePDl+WteuXcOoUaPC6tWrQ+3atcPzzz8ff1/79u1Dr169Es5DUmjXrl3YZ599whNPPBFeeOGF0K9fv1C7du3w2Wefxdd98MEHoUGDBqFr167hoYceCjNnzgx//vOfQ1paWigoKIivmz17dvw8TzrppPD888+Hxx57LLRp0ybssssuYdOmTVv9er766qvwpz/9KUgKU6dODa+//np4/fXXQ1FRUQghhDPOOCNICiNGjAgvvfRSuPPOO8NOO+0UWrduHb799tttXlaHH3542GmnncJdd90V5syZE6ZPnx6uvPLK8Pjjj8fXPPzwwyEWi4VjjjkmTJ06NTz77LNh0KBBoVatWuHll1+Or7v//vuDpPDFF1/ETxs2bFho27btNg0hhHDQQQeFJk2ahLy8vHDzzTeHGTNmhHPPPTdICuecc07C2uHDh4d77703zJo1K8yaNStcc801ITMzM4wePTph3RVXXBEkhfz8/PDkk0+GmTNnhgkTJoQrrrgi4fPuscce8X9PmDAh1KpVK1xzzTXb9P7nP/8pcx074ogjQmZmZthll13ip7355ptBUnjhhRfip0kKV111VQghhBUrVoQxY8YESeG2226LH9sVK1YkXC677LJLuPPOO8OsWbPC2WefHSSFBx98cJvG4uLicPjhh4fatWuHK664IsycOTPccMMNoV69eqFHjx5h/fr18bVt27YNLVu2DG3atAn33XdfeOGFF8JJJ50UJIXrr78+hBBCUVFR/BhffvnlcetXX30VQgjhqquuCr/8sdy2bdvQqlWr0KVLl/DYY4+FF154Iey7774hPT09XHnllaF3795h6tSpYdq0aWHXXXcNzZs3D2vXro1//JNPPhmuvPLKMG3atFBYWBgef/zxcNBBB4Wddtop4bpdcvuaPXv2Ni+TM888M2RlZYUJEyaE2bNnh+eeey5cd9114ZZbbgkhhPDpp5+G4447LkiKf32vv/56/LKSFFq2bBm6desWJk+eHF599dWwcOHCEELlrpfvvvtu6NChQ+jRo0f8vN99990QQghr1qwJe+65Z2jatGmYMGFCePnll8NNN90UGjRoEA455JBQXFwcQghh8+bNoU+fPqFu3brhuuuuCzNnzgyjR48Line truncated
"image/png": "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YmLQqVMnzJkzp8ia//3vf0hOTkbDhg0RGRmJtm3b4plnnglYU/D08LfffhujRo1CQkIC4uLicPrpp2Pt2rWlfj0pKSm44447AACJiYn+pzAXDMHy8/MxYcIEHH300YiMjETDhg1xxRVXYOPGjWUeq99//x3XXXcdmjVrhsjISBx++OFISkoq8l/QFixYgF69eiEuLg4xMTFISkrCwoULy7z/ivbpp5/iH//4B6Kjo9GkSRPcd999yMvLC1gzevRonHjiiahXr55/q8PLL78M51yR+5s6dSpOOukk1K5dG7Vr10bnzp3x8ssvl2qYNWsWYmJicM0112D//v3FrnnmmWcQFhaGrVu3+m97/PHH4fP5cNNNN/lvy8/PR926dQO2yhTeYvbaa6/hwgsvBPDX923BuT1wG016ejpOPvlkxMTEoFWrVhg3bly5tsXs2bMHI0eORGJiImrWrIkmTZrgpptuKrJVsWXLlujfvz9mzZqFjh07IioqCq1atcJTTz3lX1PwMwQAV155pd9a8LUUt8Ws4H7nzJmDLl26IDo6Gm3btvX/HL322mto27YtatWqhRNOOAHLli0L+Phly5bh4osvRsuWLREdHY2WLVvikksuwfr168v82osrJycHt99+OxITExEVFYV69eqha9euePvttwH8tUWh4Ge38FaCgu1/BVtPn3/+ebRt2xaRkZF4/fXXAZTv+7Jly5b49ttvkZaW5r/vwsOBrKwsv6/gfA0bNqzItoc///wTV199NerVq4fatWujX79++PnnnwPOx6effup/zDmwKVOmwOfzIT09vdTjtWbNGpxzzjmoW7cuoqKi0LlzZ//XW9DBPLYBwPbt29GgQYOA4VBBBf+YBso+dpUpIiICxx13HHJycvD7778DALZs2YLrr78eTZs2Rc2aNZGYmIjRo0f7Hwt++eUX/7NeRo8e7bcUflZTef5OKK2WLVsW+yypnj17HvQzlgoqfGxL68knn0TLli0DhkPlbf/+/ZgzZw7OP/98/3AIAFq0aIFTTz0Vs2bNqvB9An8NRp544gkcc8wxiIqKKrL151AN3ArOe+Hv1cmTJyMyMhI333xzmR9f3mNe3hYvXoyff/4ZV155ZaXvu+Ax+uOPP8axxx6L6OhoHH300WU+q6y8/etf/8KuXbtw1113Vcn9HcqKO79KKbKcUkpVolmzZjkAburUqf7bOnTo4EaOHOmys7NdjRo13Icffuh/X2Jiojv++OMD7gOAa9mypTvhhBPcv//9bzd37lzXs2dPV6NGDffTTz/513377beuTp06rkOHDm7KlClu/vz57rbbbnNhYWEuJSXFv27x4sX++7z00kvdhx9+6N5++23XvHlz16ZNG7d///4Sv55ff/3V3XzzzQ6Amzlzpvviiy/cF1984TIzM51zzl133XUOgBs6dKj7+OOP3fPPP+8OP/xw16xZM/f777+XeqzOOOMMd/jhh7sXX3zRLVmyxM2ePdvdf//9btq0af41b7zxhvP5fO7cc891M2fOdB988IHr37+/Cw8PdwsWLPCve/XVVx0At27dOv9tgwYNci1atCjV4JxzPXr0cPXr13cJCQnuqaeecvPmzXO33HKLA+BuuummgLWDBw92L7/8sktNTXWpqanuoYcectHR0W706NEB6+677z4HwA0cONC98847bv78+W7ixInuvvvuC/i87dq18/954sSJLjw83D300EOlev/73/8W+R4788wzXXR0tGvTpo3/tq+++soBcHPnzvXfBsA98MADzjnntm7d6saMGeMAuGeeecZ/brdu3RpwXNq0aeOef/55l5qa6oYMGeIAuNdff71UY35+vjvjjDNcjRo13H333efmz5/vHnvsMVerVi3XpUsXt2fPHv/aFi1auCZNmrjmzZu7V155xc2dO9ddeumlDoB79NFHnXPOZWZm+s/xvffe67f++uuvzjnnHnjgAXfgX90tWrRwTZs2de3bt3dvv/22mzt3rjvxxBNdRESEu//++11SUpKbOXOmmzVrljvyyCNdo0aNXE5Ojv/j33nnHXf//fe7WbNmubS0NDdt2jTXo0cPd/jhhwd8bxf8fC1evLjUY3L99de7mJgYN3HiRLd48WI3Z84cN27cOPf0008755z78ccf3QUXXOAA+L++L774wn+sALgmTZq4jh07uqlTp7pFixa5NWvWOOfK9325YsUK16pVK9elSxf/fa9YscI559yuXbtc586dXYMGDdzEiRPdggUL3JNPPunq1KnjTjvtNJefn++ccy4vL891797dRUVFuXHjxrn58+e70aNHuzZt2gR8bznnXJcuXVxSUlKR43D88ccXecw7sP/+978uNjbWtW7d2k2ZMsV9+OGH7pJLLnEA3Pjx44sc+8o8tjnn3DXXXOMAuJtvvtl9+eWXbt++fcWuK+3YlacDf9YLOvbYY12NGjVcTk6Oy8jIcM2aNXMtWrRwL7zwgluwYIF76KGHXGRkpBs8eLBzzrk9e/a4jz/+2AFwV199td/y448/OufK/3dCcY+XBbVo0cINGjSo2K+hR48eAbfl5uaW663g+6eLine truncated
"text/plain": [
"<Figure size 1400x600 with 1 Axes>"
]
@@ -1302,7 +1305,7 @@
"id": "6a264a3a-13dc-42bf-a3f4-b9b6bd44ef11",
"metadata": {},
"source": [
"I don't fully understand this plot, but it seems to be saying that up to 24 coins the shape is similar to the optimal strategy on other distributions, but once we get to 36 coins, the strategy is to sell back any bag under about 440 diamonds, regardless of how many coins are left.\n",
"This plot seems to be saying that up to 24 coins the shape is similar to the optimal strategy on other distributions, but once we get to 30 coins or more, the strategy is to sell back any bag under 94 diamonds (even though the mean is just 16 diamonds).\n",
"\n",
"# Conclusions\n",
"\n",