Skip to content

Instantly share code, notes, and snippets.

@GrantMoyer
Last active March 18, 2025 12:14
Show Gist options
  • Save GrantMoyer/6c44275c3ae13a2334cda22fdda2ae31 to your computer and use it in GitHub Desktop.
Save GrantMoyer/6c44275c3ae13a2334cda22fdda2ae31 to your computer and use it in GitHub Desktop.
Sugar Cane Yield v.s. Harvest Period
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "7b1915e0",
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import scipy as sp\n",
"import matplotlib.pyplot as plt\n",
"from scipy.stats import binom"
]
},
{
"cell_type": "markdown",
"id": "1d01a150",
"metadata": {},
"source": [
"# Problem\n",
"\n",
"Designing a sugar cane farm in Minecraft requires deciding how often to harvest sugarcane. Harvesting sugarcane immediately after it grows gives optimal yeild, but is impractical for large farms. Because harvesting sugar cane at the wrong time can \"waste\" some random ticks a growing sugar cane has recived, yield is not a monotonic function of harvest period.\n",
"\n",
"Given this, what is the optimal harvest period to maximize yeild?"
]
},
{
"cell_type": "markdown",
"id": "229e3176",
"metadata": {},
"source": [
"# Background\n",
"\n",
"Sugar cane plants can grow up to three blocks tall. For a new block of sugar cane to grow, the top block of a plant must be \"random ticked\" 16 times.\n",
"\n",
"Each game tick, 3 random blocks are independently sampled from each 16×16×16 sub-chunk to be random ticked. Since the samples are independent, a block can be random ticked up to 3 times per game tick. The chance any given block is random ticked for a given sample is $16^{-3}$."
]
},
{
"cell_type": "markdown",
"id": "b96f4a27",
"metadata": {},
"source": [
"# Analysis\n",
"\n",
"## Average growth rate of first harvest\n",
"\n",
"We will consider only one sugar cane plant for simplicity. Since sugar cane grow practically independently, the growth rate of $n$ sugar cane is rougly equal to $n$ times the growth rate of one sugar cane.\n",
"\n",
"We'd like to know the number of random ticks a sugar can plant recieves over a given period of time. This quantity, which we will call $T_0$ is a random variable. The number of occurences of an independent random trial (such as a random tick) repeated $n$ times is described by a [Binomial distribution][1]. $\\text{P}(T_0 = r)$ is plotted below for a 25 minute interval, that is, the proability that $T_0 = r$ where $r$ is a given number of random ticks recieved.\n",
"\n",
"[1]: https://en.wikipedia.org/wiki/Binomial_distribution"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "b98b501c",
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAYgAAAEWCAYAAAB8LwAVAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAAsTAAALEwEAmpwYAAAnEElEQVR4nO3de5gdVZ3u8e+bpJsO0JLQRAcSQkBgEEEDZCCMoiiXwQsGMQjICCgOQcH7jMI5R4ZRzkEcEZmRUZGrCIKAl6gIIkRHkUDSGMlF0TYQCAMSmuZOEzr5nT9q7aSyU929k+7d+9Lv53n201WraletVbu6flVrVa1SRGBmZlZuTK0zYGZm9ckBwszMCjlAmJlZIQcIMzMr5ABhZmaFHCDMzKyQA4QNSNI5kr5To3X/L0mXVjDflZLOHYk8DZWkEyT9vArLPVjSyuFebiOT9A1Jn6t1PhqZA0QDkvSgpBclPSfpsXSA3LrW+RqKogNcRPy/iPhQrfJUDRFxTUQcXut8jBRJ75D0G0lPpX31UkntuelXSlqd9uXSZ+xwrDsiTouILwzHskYrB4jGdWREbA1MB/YBzqptdpqLpHG1zkOj6WebbQOcC+wAvAaYDPx72Txfioitc581Vc6qVcgBosFFxGPArWSBAgBJZ0r6i6RnJS2T9O7ctJPTGd2XJfVIekDS23LTd5b0q/Td24Dt8uuT9C5JS9MZ4S8lvSY37UFJ/yLpPknPS7pM0qsk/Swt7xeSJpaXQdJWwM+AHXJnkTuUV29JeqOk36Z1Pyzp5IJltUuaJ+k/lHl72gbPSnpE0j8Xbce0Xe6UdKGkbuAcSVuk7fSQpL+mKovxue/MkrRI0jNpex+R0rdJZX80rfPc0llxafun4a9L+nJZPn4k6VNpeAdJN0lalX6nj+XmG5/OvnskLQP+rqhcufn/XtICSU+nv3+f0o+VtLBs3k9KmpuG+90Gpas+SZ+V9BhwRfl6I+LaiLglIl6IiB7gW8AbBsrrAGXI/0ZPSVqeynVy2h8el3RSbv51VY+5vH46zfeopA/k5q1oPxl1IsKfBvsADwKHpuEpwGLgotz0Y8jO2MYAxwLPA9unaScDLwP/BIwFPgz8D6A0/S7gK8AWwJuAZ4HvpGm7p2UdBrQAnwG6gNZcvuYDryI7U3wcuJfsCqcNuAP4137KdDCwsiztnNy6d0p5OT6tuwOYnqZdSXaW2gHcA5ybW8ajwEFpeCKwbz/rPxnoAz4KjAPGAxcCc4FtgXbgx8B5af79gafTthiTyrtHmvYD4JvAVsArU57m5NbzmzT8JuDh3LafCLyY++06gbOBVmAXYDnwD2neLwK/TnnbEVhSvv1yZdsW6AHen8p2fBrvALZM23W33PwLgOPS8EDb4OC0zc4n21/GV7DvfhW4Ljd+JfBk+nQC7xngu6Xf6ANk++65wEPAxWn9h6eybJ3fL8ry+nmy/eftwAvAxE3ZT0bbp+YZ8GczfrTsQPxc+mcI4HZgwgDzLwJmpeGTga7ctC3TMv4GmJr+ibbKTb+W9QfpzwHfy00bAzwCHJzL1wm56TcBX8+NfxT4YT95PLj8AMeGAeIs4Af9fPdK4HKyg+S/lE17CJgDvGKQbXoy8FBuXGTB8NW5tAOBB9LwN4ELC5bzKuCl/MGS7IA8L7ee3+TW8RDwpjT+T8AdafiAfH5y2+CKNLwcOCI37dTy7Zeb9n7gnrK0u4CT0/B3gLPT8G5pv9qygm1wMLAaaKtwvz2MLDDtnkvblyxQjSM7aD8LvGGA3+jPufG9yfbdV+XSuik7ccjl9UVgXG7ex4GZm7KfjLaPq5ga11ER0U624+9BripI0omp6uMpSU8Be7FhVdFjpYGIeCENbk125toTEc/n5l2RG94hPx4Ra8nOgCfn5vlrbvjFgvHNbUzfEfjLANPfQXbW/42y9PeQHXhWpKqzAwdYxsO54UlkB8nO3Ha8JaUPlJ+dyM5QH81975tkVxIbiOzIdB1ZAAF4H3BNbjk7lJaRlvO/yAIQZL9FPr/536ncDgXTV7D+d7u2LA8/TPvFYNsAYFVE9A6wbgAkzUzrmR0RfyqlR8S9EdEdEX0RcTNZ+Y8eYFHl+xMRUek+1h0RfbnxF3Lzbsp+Mmo4QDS4iPgV2ZnSlwEk7URWz3sG0BERE8jOrFXB4h4FJqY2gZKpueH/ITtwkdYlsgPlI5tfgnUG61b4YeDVA0z/FtnB6+Z8/iNiQUTMIjtA/xD4XoV5eILsYPPaiJiQPttEdmPAQPl5mOwKYrvc914REa/tZ53fBWan3+0Asquu0nIeyC1jQkS0R8Tb0/RHybZ9Sf53KrfB75abv/S73QZMkjSdLFBcW+E2gMF/NyTtQ1ZN9cGIuH2Q2YPK9tVhtYn7yajhANEcvgocJun1ZPXeAawCSA1xe1WykIhYASwE/k1Sq6Q3AkfmZvke8A5Jh0hqAT5NdjD87TCU4a9Ah6Rt+pl+DXCopPdKGiepIx3Q8s4A7gd+nBpxW5U9d7BNRLwMPAOsrSQz6eroW8CFkl4JIGmypH9Is1wGfCBtizFp2h4R8Sjwc+ACSa9I014t6c39rOd3ZAfiS4FbI+KpNOke4NnUADxe0lhJe0kqNUZ/DzhL0kRJU8iq7/pzM7C7pPelbXcssCfwk5SHl4EbyO4u2pYsYFSyDQYlaS+ywP3RiPhxwfTZkrZO2+lw4B/JgsmIGcp+0uwcIJpARKwCvk1Wj7wMuICsjvmvZPW0d27C4t5Hdib7JPCvabml9dxP9g/8n2QHtSPJbrddPQxl+CPZ2fTyVJ2xQ9n0h8iqAD6d8rYIeH3ZPEGqiwd+RNYw/n7gQUnPAKcBJ2xCtj5L1gg/P33/F8DfpnXdQ9ZYeiFZY/WvWH+WfiJZw/Iysjr3G4HtB1jPtcChrD9zJ7JbPd9JdnfaA6wPIqUA+m9k1UQPkAWkq/tbeER0p2V9mqyO/jPAOyPiiYI83FBWDdPvNqjQp8mqpC7T+jvUluamf5zsSuYpsgD1TxHxy01Y/nAZyn7StEp3T5iZmW3AVxBmZlbIAcLMzAo5QJiZWSEHCDMzK9Q0HZJtt912MW3atFpnw8ysoXR2dj4REZOKpjVNgJg2bRoLFy4cfEYzM1tHUr9P4buKyczMCjlAmJlZIQcIMzMr1DRtEGY2erz88susXLmS3t5BO5K1pK2tjSlTptDS0lLxdxwgzKzhrFy5kvb2dqZNm0bWqbANJCLo7u5m5cqV7LzzzhV/z1VMZtZwent76ejocHCokCQ6Ojo2+YrLAcIaTueKHi6e10Xnip4B06y5OThsms3ZXq5isobSuaKHEy6dz+q+tbSOG8M1H5oJsFHafjtNrHFOzRqfA4Q1lPnLu+l9OXuXy8t9a5m/vBtgozQHCLOhc4CwhjJzlw7GCNYGtIwbw8xdOgAK08xsaNwGYQ1lv50mssfftDNl4vh1VUlFaWblqtFONXbsWKZPn85ee+3FMcccwwsvvADAiy++yJvf/Ga++c1vMn36dKZPn86YMWPWDX/yk58ctjzkrV69mje96U309fUNPnMFHCCs4bS3tTB5wvgNAkFRmllJqe3qgp/fzwmXzh+2IDF+/HgWLVrEkiVLaG1t5Rvf+AYAl19+OUcffTRz5sxh0aJF/PSnP2XHHXdk0aJFLFq0iAsvvHBY1l9u7NixHHLIIVx//fXDsjwHCDNreqW2q7WxYdvVcDrooIPo6uoC4JprrmHWrFnrpi1ZsoS999572NcJcMwxxzBnzhxmzpzJeeedx1FHHcU111wzLMt2G4SZNb3+2q6GS19fHz/72c844ogjWL16NcuXLyf/+oHFixez1157Vby8gw46iGeffXaj9C9/+csceuihG6QtXryY9773vcyfPx+ANWvWsGDBgs0rSBkHCDNreqV2qmd6+7jouH2GrSryxRdfZPr06UB2UD/llFN44oknmDBhwgbzLVmyhMMOO2yDtOeff56PfOQjtLa2cvDBB3PCCSesm/brX/+6ovX39vby5JNPcvbZZ69LGzt2LK2trTz77LO0t7dvXsESBwira50repi/vJuZu3Rs8j/1UL5rzae9rYX2tpZh3RdKbRDlaeVPLC9evHijhunvf//7zJ49myOPPJJjjz12gwBR6RXE0qVLOeCAAxg3bsND+UsvvURbW9vmFmudqgYISUcAFwFjgUsj4otl07cAvg3sB3QDx0bEg5JagEuBfVMevx0R51Uzr1Z/ih6Kq/SfeyjfNRuKiRMnsmbNGnp7e2lra2Pt2rX8+c9/5jWvec0G861cuXJdu8TYsWM3mFbpFcTixYt53etet0Fad3c322233SZ1ytefqjVSSxoLXAy8DdgTOF7SnmWznQL0RMSuwIXA+Sn9GGCLiNibLHjMkTStWnm1+jSUhsWRaJS0xnL9nAO5fs6BI7Kuww8/nN/85jcAdHV1MWXKFFpbWzeYZ8qUKaxcuRKAtWvXbtZ6igLEvHnzeMc73rFZyytXzbuY9ge6ImJ5RKwGrgNmlc0zC7gqDd8IHKKsw5AAtpI0DhgPrAaeqWJerQ6VGhZh0xsWh/Jds0o999xzhemnn346V12VHdp23313li1bttE8Rx99NDfddBMf/vCHOfLIIzdr/RdccAHHHnvsBmnXXnstc+bM2azllatmFdNk4OHc+ErggP7miYg+SU8DHWTBYhbwKLAl8MmIeLKKebU6NJSGxWo1SppVYt999+Utb3kLa9as2aj6qGSrrbbiiiuuGNb1rl69mqOOOordd999WJZXr43U+wNrgB2AicCvJf0iIpbnZ5J0KnAqwNSpU0c8k1Z9Q2lYrEajpFmlPvjBD474OltbWznxxBOHbXnVrGJ6BNgxNz4lpRXOk6qTtiFrrH4fcEtEvBwRjwN3AjPKVxARl0TEjIiYMWnSpCoUwcxs9KpmgFgA7CZpZ0mtwHHA3LJ55gInpeHZwB0REcBDwFsBJG0FzAT+WMW8mplZmaoFiIjoA84AbgX+AHwvIpZK+rykd6XZLgM6JHUBnwLOTOkXA1tLWkoWaK6IiPuqlVczazzZuaRVanO2V1XbICLiZuDmsrSzc8O9ZLe0ln/vuaJ0MzOAtrY2uru7/drRCpXeSb2pD8/VayO1mVm/Ss8QrFq1qtZZaRhtbW1MmTJlk77jAGFmDaelpYWdd9651tloeu7u28zMCjlAmJlZIQcIMzMr5ABhZmaFHCBsVKnGi+vNmpXvYrK6Ue0X/PgdEWabxgHC6sJIHLxL74iA9e+IcIAw65+rmKwujMQLfvyOCLNN4ysIqwulg/faqN7B2++IMNs0DhBWF0bq4O13RJhVzgHC6oYP3mb1xW0QZmZWyAHCzMwKOUCYmVkhBwgzMyvkAGFmZoUcIMzMrJADhJmZFXKAMDOzQg4QZmZWyAHCzMwKOUCYmVkhBwgzMyvkAGFmZoUcIMzMrJADhBnZK08vntdF54qeWmfFrG74fRA26o3E+7DNGpGvIGzUG4n3YZs1IgcIG3H1Vp1Teh82VO992GaNyFVMNqLqsTpnpN6HbdZofAVhI6peq3Pa21qYPGG8g4NZjgOEjShX55g1Dlcx2YhydY5Z43CAsBHX3tZCe1uLg4NZnXMVk5mZFXKAMDOzQlUNEJKOkHS/pC5JZxZM30LS9Wn63ZKm5aa9TtJdkpZKWiyprZp5NTOzDVUtQEgaC1wMvA3YEzhe0p5ls50C9ETErsCFwPnpu+OA7wCnRcRrgYOBl6uVVzMz21g1ryD2B7oiYnlErAauA2aVzTMLuCoN3wgcIknA4cB9EfF7gIjojog1VcyrmZmVqWaAmAw8nBtfmdIK54mIPuBpoAPYHQhJt0q6V9JnilYg6VRJCyUtXLVq1bAXwMxsNKvXRupxwBuBE9Lfd0s6pHymiLgkImZExIxJkyaNdB7NzJpaNQPEI8COufEpKa1wntTusA3QTXa18d8R8UREvADcDOxbxbyamVmZagaIBcBuknaW1AocB8wtm2cucFIang3cEREB3ArsLWnLFDjeDCyrYl7NzKxM1Z6kjog+SWeQHezHApdHxFJJnwcWRsRc4DLgakldwJNkQYSI6JH0FbIgE8DNEfHTauXVzMw2VtWuNiLiZrLqoXza2bnhXuCYfr77HbJbXc3MrAbqtZHazMxqzAHCzMwKOUCYmVkhBwgzMyvkAGHWj84VPVw8r4vOFT21zopZTfiFQWYFOlf0cMKl81ndt5bWcWO45kMz/YIjG3V8BWFWYP7ybnpfXsvagJf71jJ/eXets2Q24hwgzArM3KWDMcqGW8aNYeYuHbXNkFkNuIrJrMB+O01kj79p55nePi46bh9XL9mo5ABh1o/2thba21ocHGzUchWTVZXvBDJrXBVdQUg6EvhpRKytcn6sifhOILPGVukVxLHAnyV9SdIe1cyQNQ/fCWTW2CoKEBHxj8A+wF+AKyXdlV732V7V3FlD851AZo2t4jaIiHgGuBG4DtgeeDdwr6SPVilv1uBKdwJNmTje1UtmDajSNohZwMnArsC3gf0j4nFJW5K96e0/q5ZDa2i+E8iscVV6m+vRwIUR8d/5xIh4QdIpw58tMzOrtUqrmB4rDw6SzgeIiNuHPVdmZlZzlQaIwwrS3jacGTEzs/oyYBWTpA8DHwFeLem+3KR24M5qZszMzGprsDaIa4GfAecBZ+bSn42IJ6uWKzMzq7nBAkRExIOSTi+fIGlbBwkzs+ZVyRXEO4FOIADlpgWwS5XyZWZmNTZggIiId6a/O49MdszMrF4M1ki970DTI+Le4c2OmZnVi8GqmC4YYFoAbx3GvJiZWR0ZrIrpLSOVETMzqy+DVTG9NSLukHR00fSI+H51smVmZrU2WBXTm4E7gCMLpgXgAGGjSueKHuYv72bmLh3ugNCa3mBVTP+a/n5gZLJjVr/8hjwbbSrqi0lSh6T/kHSvpE5JF0ny219sVPEb8my0qbSzvuuAVcB7gNlp+PpqZcqsHvkNeTbaVPo+iO0j4gu58XMlHVuNDJnVq9Ib8p7p7eOi4/Zx9ZI1vUqvIH4u6ThJY9LnvcCt1cyYWT1qb2th8oTxDg42Kgx2m+uzrO+D6RPAd9KkMcBzwD9XM3NmZlY7g93F1D5SGTEzs/pSaRsEkiYCuwFtpbTy15CamVnzqChASPoQ8HFgCrAImAnchftiMjNrWpU2Un8c+DtgReqfaR/gqcG+JOkISfdL6pJ0ZsH0LSRdn6bfLWla2fSpkp6T5LaOBtC5ooeL53XRuaKn1lkxs2FQaRVTb0T0SkLSFhHxR0l/O9AXJI0FLgYOA1YCCyTNjYhludlOAXoiYldJxwHnA/nbZ79C9spTq3N+ytis+VR6BbFS0gTgh8Btkn4ErBjkO/sDXRGxPCJWkz1sN6tsnlnAVWn4RuAQSQKQdBTwALC0wjxaDfkpY7PmU9EVRES8Ow2eI2kesA1wyyBfmww8nBtfCRzQ3zwR0SfpaaBDUi/wWbKrj36rlySdCpwKMHXq1EqKYlVSesp4bfgpY7NmsSl3Me0LvJHsuYg701VBtZwDXBgRz6ULikIRcQlwCcCMGTOiivmxQfgpY7PmU+ldTGcDx7C+e+8rJN0QEecO8LVHgB1z41NSWtE8KyWNI7sy6Sa70pgt6UvABGCtpN6I+Fol+bXaaG9rob2txcHBrElUegVxAvD6iOgFkPRFsttdBwoQC4DdJO1MFgiOA95XNs9c4CSyW2ZnA3dERAAHlWaQdA7wnIODmdnIqjRA/A/ZA3K9aXwLNr4a2EBqUziDrM+mscDlEbFU0ueBhRExF7gMuFpSF/AkWRAxM7M6MFhfTP9J1ubwNLBU0m1p/DDgnsEWHhE3AzeXpZ2dG+4lq7oaaBnnDLYeMzMbfoNdQSxMfzuBH+TSf1mV3JiZWd0YrLO+0jMKSGoFdk+j90fEy9XMmJmZ1ValdzEdTPZA24NkXX/vKOkkd9ZnZta8Km2kvgA4PCLuB5C0O/BdYL9qZcysUXSu6GH+8m5m7tLhW3ytqVQaIFpKwQEgIv4kqaVKeTJrGO6DyppZpX0xdUq6VNLB6fMt1jdgm41a7oPKmlmlVxCnAacDH0vjvwb+qyo5Mmsg7oPKmtmgASJ12/37iNiDrPttM0vcB5U1s0GrmCJiDXC/JHeXalagva2FyRPGOzhY06m0imki2ZPU9wDPlxIj4l1VyZWZmdVcpQHic1XNhZmZ1Z3B+mJqI2ug3hVYDFwWEX0jkTEzM6utwdogrgJmkAWHt5E9MGdmZqPAYFVMe0bE3gCSLqOCHlzNzKw5DHYFsa5DPlctmZmNLoNdQbxe0jNpWMD4NC4gIuIVVc2dmZnVzGDdfY8dqYxYY3EHdWbNr9LbXM3WcQd1ZqNDpZ31ma3jDurMRgcHCNtkpQ7qwB3UmTUzVzHZJnMHdWajgwOEbZb2thba21ocHMyamKuYzMyskAOEWRV0rujh4nlddK7oqXVWzDabq5jMhplvA7Zm4SsIs2Hm24CtWThAmA0z3wZszcJVTGbDzLcBW7NwgDCrAt8GbM3AVUxmZlbIAcLMzAo5QJiZWSEHCDMzK+QAYWZmhRwgzMyskAOEmZkVcoAwM7NCVQ0Qko6QdL+kLklnFkzfQtL1afrdkqal9MMkdUpanP6+tZr5NDOzjVUtQEgaC1wMvA3YEzhe0p5ls50C9ETErsCFwPkp/QngyIjYGzgJuLpa+bTBuetqs9Gpml1t7A90RcRyAEnXAbOAZbl5ZgHnpOEbga9JUkT8LjfPUmC8pC0i4qUq5tcKuOvq4dO5oof5y7uZuUuHt6E1hGoGiMnAw7nxlcAB/c0TEX2SngY6yK4gSt4D3FsUHCSdCpwKMHXq1OHLua1T6roa1ndd7YPbpnOgtUZU143Ukl5LVu00p2h6RFwSETMiYsakSZNGNnOjhLuuHh5+R4Q1omoGiEeAHXPjU1Ja4TySxgHbAN1pfArwA+DEiPhLFfNpAyh1XT1l4nif9Q6BA601omoGiAXAbpJ2ltQKHAfMLZtnLlkjNMBs4I6ICEkTgJ8CZ0bEnVXMo1Wgva2FyRPGOzgMgQOtNaKqBYiI6APOAG4F/gB8LyKWSvq8pHel2S4DOiR1AZ8CSrfCngHsCpwtaVH6vLJaeTUbCQ601miq+sKgiLgZuLks7ezccC9wTMH3zgXOrWbezMxsYHXdSG1mZrXjAGFmZoUcIMzMrJADhJmZFXKAMDOzQg4QZmZWyAHCzMwKOUCY1ZC7Urd6VtUH5cysf+7h1eqdryBsAz6jHTnu4dXqna8gbB2f0Y6sUg+va8M9vFp98hWEreMz2pHlHl6t3vkKwtbxGe3Ia29rob2txcHB6pIDhK1TOqN9prePi47bxwcts1HOAcI24DNaMytxG4SZmRVygDAzs0IOEGZ1yM+jWD1wG4RZnfHzKFYvfAVhVmf8PIrVCwcIszpTeh4F/DyK1ZarmEapzhU9zF/ezcxdOlx9UWf8PIrVCweIUch13PXPz6NYPXAV0yjkOm4zq4QDxCjkOu7G5FtfbaS5imkUch1343G1oNWCryBGqfa2FiZPGO+DTINwtaDVggOEWQNwtaDVgquYzBqAqwWtFhwgRgE/89Acim599W9r1eQA0eTcuNm8/NtatbkNosm5cbN5+be1anOAaHJu3Gxe/m2t2lzF1OTcuNm8+vtt3S5hw8UBoskUHRzcr0/zKv9t3S5hw8kBoon44GCldglY3y6x304TfVVhm8UBoon0d3Cw0aPULrE21rdL+MTBNpcbqRtYeedtbrS0UrvElInj1wWC/u52cud/NpiqXkFIOgK4CBgLXBoRXyybvgXwbWA/oBs4NiIeTNPOAk4B1gAfi4hbq5nXeldeRdDfWaEbpK28XWJTryqKqqNcRTU6VS1ASBoLXAwcBqwEFkiaGxHLcrOdAvRExK6SjgPOB46VtCdwHPBaYAfgF5J2j4g11chrpf8QI5FWlF70z9xfdZIbpK1c0YnDxfO6+m2rKN/XgMJgMhL7fi3TGnndw6WaVxD7A10RsRxA0nXALCAfIGYB56ThG4GvSVJKvy4iXgIekNSVlnfXcGey0n+IkUjblGBQdFZo1p9KriqguB0LKEwbiX1/uNfTCPkZ6rqHM0hUM0BMBh7Oja8EDuhvnojok/Q00JHS55d9d3L5CiSdCpwKMHXq1M3K5Pzl3azu27h+thZppfri8vSZu3TQ1jKGl/vWrvtn3m+nidxw2t9vdOZw/ZwDNypjpWlD/b7X3Tj56W//KdrXgI3Shvv/pr99fyjLbNT8DHXdjRIgqi4iLgEuAZgxY0ZszjJm7tJB67iN/yFqlVaUn/12mrjuSiL/z7zfThNdlWSbrWj/6W9fK0obiX2/GutphPwMdd3DRRGbdVwdfMHSgcA5EfEPafwsgIg4LzfPrWmeuySNAx4DJgFn5ufNz9ff+mbMmBELFy7crLw2Qr2nWb2pt3r3ZsrPcHy/UpI6I2JG4bQqBohxwJ+AQ4BHgAXA+yJiaW6e04G9I+K01Eh9dES8V9JrgWvJ2h12AG4HdhuokXooAcLMbLQaKEBUrYoptSmcAdxKdpvr5RGxVNLngYURMRe4DLg6NUI/SXbnEmm+75E1aPcBp1frDiYzMytWtSuIkeYrCDOzTTfQFYSfpDYzs0IOEGZmVsgBwszMCjlAmJlZoaZppJa0ClgxhEVsBzwxTNmptWYqCzRXeZqpLNBc5WmmskDl5dkpIiYVTWiaADFUkhb215LfaJqpLNBc5WmmskBzlaeZygLDUx5XMZmZWSEHCDMzK+QAsd4ltc7AMGqmskBzlaeZygLNVZ5mKgsMQ3ncBmFmZoV8BWFmZoUcIMzMrNCoDxCSjpB0v6QuSWfWOj+bStLlkh6XtCSXtq2k2yT9Of1tiJdKSNpR0jxJyyQtlfTxlN6o5WmTdI+k36fy/FtK31nS3Wmfu15Sa63zWilJYyX9TtJP0ngjl+VBSYslLZK0MKU15L4GIGmCpBsl/VHSHyQdONTyjOoAIWkscDHwNmBP4HhJe9Y2V5vsSuCIsrQzgdsjYjeyd2k0SuDrAz4dEXsCM4HT0+/RqOV5CXhrRLwemA4cIWkmcD5wYUTsCvQAp9Qui5vs48AfcuONXBaAt0TE9NzzAo26rwFcBNwSEXsAryf7nYZWnogYtR/gQODW3PhZwFm1ztdmlGMasCQ3fj+wfRreHri/1nnczHL9CDisGcoDbAncS/Ze9ieAcSl9g32wnj/AlHSQeSvwE0CNWpaU3weB7crSGnJfA7YBHiDdeDRc5RnVVxDAZODh3PjKlNboXhURj6bhx4BX1TIzm0PSNGAf4G4auDypSmYR8DhwG/AX4KmI6EuzNNI+91XgM8DaNN5B45YFIICfS+qUdGpKa9R9bWdgFXBFqgK8VNJWDLE8oz1ANL3ITh0a6l5mSVsDNwGfiIhn8tMarTwRsSYippOdfe8P7FHbHG0eSe8EHo+IzlrnZRi9MSL2JatiPl3Sm/ITG2xfGwfsC3w9IvYBnqesOmlzyjPaA8QjwI658SkprdH9VdL2AOnv4zXOT8UktZAFh2si4vspuWHLUxIRTwHzyKphJqR3tkPj7HNvAN4l6UHgOrJqpotozLIAEBGPpL+PAz8gC+CNuq+tBFZGxN1p/EaygDGk8oz2ALEA2C3didFK9k7suTXO03CYC5yUhk8iq8uve5JE9p7yP0TEV3KTGrU8kyRNSMPjydpT/kAWKGan2RqiPBFxVkRMiYhpZP8nd0TECTRgWQAkbSWpvTQMHA4soUH3tYh4DHhY0t+mpEOAZQy1PLVuXKn1B3g78CeyuuH/Xev8bEb+vws8CrxMdhZxClnd8O3An4FfANvWOp8VluWNZJfA9wGL0uftDVye1wG/S+VZApyd0ncB7gG6gBuALWqd100s18HATxq5LCnfv0+fpaX//Ubd11LepwML0/72Q2DiUMvjrjbMzKzQaK9iMjOzfjhAmJlZIQcIMzMr5ABhZmaFHCDMzKyQA4TVBUlrUq+aSyT9uPT8wDAs92RJXxuOZZUt9xOStsyN3zxQniVdKWl2f9NHWuqKYcgdU1Zr+1p9cICwevFiZL1q7gU8CZxe6wwN4hNkHfABEBFvj+xp6arJPbE8ZBHxoYhYNlzLs+bkAGH16C5Sp2+S9pd0V+qA7LelJ0XTmev3Jd2S+rr/UunLkj4g6U+S7iHrIqKUPk3SHZLuk3S7pKkp/UpJX5c0X9JySQcre8/GHyRdWZ45SR8DdgDmSZqX0h6UtF0aPjGt4/eSri74/hfSOsdK+qKy91/cJ+nLBfOeI+lqSXcCV6ens2+StCB93pDm21rSFen9BvdJek9KPzxtv3sl3ZD6uULSLyXNkHSapH/PrW/dFYGkf1T2PotFkr6Zusfvd/taE6r103/++BMRAM+lv2PJnsg9Io2/gvXdSR8K3JSGTwaWk3Vz3AasIOtXa3vgIWAS0ArcCXwtfefHwElp+IPAD9PwlWT9CwmYBTwD7E12AtUJTC/I74PkuooujQOvJXsyf7uUvm1uHbOBfwe+kdbVQdYdc+mB1QkF6zkn5WF8Gr+WrJM5gKlk3ZJA9l6Gr+a+NzHl57+BrVLaZ1n/NPcvgRlpO3XlvvczsifaX5O2V0tK/y/gxIG2rz/N9xm2S1azIRqfusWeTNZf0W0pfRvgKkm7kXXD0ZL7zu0R8TSApGXATmQHxV9GxKqUfj2we5r/QODoNHw18KXcsn4cESFpMfDXiFicvr+U7H0biyosx1uBGyLiCYCIeDI37XPA3RFxalr200AvcJmyN7T9pJ9lzo2IF9PwocCeWbdVALwiXRUcStZHEmm9Pcp6YN0TuDPN30p2dUZuvlXpqmkmWXcMe5Ad9E8H9gMWpO+OJ+vo7QD6377WZBwgrF68GBHTU8PvrWQHqP8AvgDMi4h3K3tHxC9z33kpN7yGoe3PpWWtLVvu2iEuN28BsJ+kbSPiyYjok7Q/Wcdqs4EzyAJMuedzw2OAmRHRm58hFzA2SAZui4jjB8nXdcB7gT8CP0iBUsBVEXFW2XqOGmRZ1kTcBmF1JSJeAD4GfDo1ym7D+i6kT65gEXcDb5bUoazr8GNy037L+rPsE4BfDyGrzwLtBel3AMdI6oDsHce5abcAXwR+Kqk9nflvExE3A58ke03kYH4OfLQ0Iml6GryNXMO+sncPzwfeIGnXlLaVpKKz/R+QVa0dTxYsIOvgbbakV5bKIWknBt6+1mQcIKzuRESpB9TjyaqBzpP0Oyo4k4/s7VnnkFWl3MmG70/+KPABSfcB7yd7v/LmugS4pdRInVv/UuD/Ar+S9HvgK2XTbwC+RdYNczvwk5Sf3wCfqmC9HwNmpIboZcBpKf1cYKKy24R/T/au5VVkQfW7aR13UfDCoojoIdtOO0XEPSltGfB/yN64dh9ZANp+kO1rTca9uZqZWSFfQZiZWSEHCDMzK+QAYWZmhRwgzMyskAOEmZkVcoAwM7NCDhBmZlbo/wOp0htZIEv+qAAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"T_0_dist = binom(60*60*25, 16**-3)\n",
"random_ticks = np.arange(0, 60)\n",
"T_0 = T_0_dist.pmf(random_ticks)\n",
"plt.stem(random_ticks, T_0, markerfmt='.', basefmt=' ')\n",
"plt.legend([r'P$(T_0 = r)$'])\n",
"plt.xlabel(\"Random ticks received\")\n",
"plt.ylabel(\"Probability\")\n",
"plt.title(\"Random ticks received over 25 mins\")\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "16336d67",
"metadata": {},
"source": [
"The average number of random ticks recieved over the period, also called the expected value of $T_0$, or $\\text{E}(T_0)$, is the sum of each random ticks received value times its probability of ocurring. This sum is represented as the shaded region of the plot above."
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "35c6ca02",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Expected random ticks recieved: 21.97\n"
]
}
],
"source": [
"expected_value = (random_ticks * T_0).sum()\n",
"print(f\"Expected random ticks recieved: {expected_value:0.2f}\")"
]
},
{
"cell_type": "markdown",
"id": "1bc8b668",
"metadata": {},
"source": [
"If we harvest once after waiting 25 minutes, we can expect 21.97 random ticks on average."
]
},
{
"cell_type": "markdown",
"id": "9b6c5679",
"metadata": {},
"source": [
"## Average growth rate over many harvests\n",
"\n",
"However, if we harvest repeatedly, we must also account for any random ticks recived during a previous harvest period, since there may be random ticks left over. Specifically, if the previous harvest had zero growths the random ticks from the previous harvest are not reset.\n",
"\n",
"Given the two possibilities for the previous harvest, zero growths or non-zero growths, the total random ticks recieved $T_n$ for a harvest $n$ is:\n",
"\n",
"$T_n = T_0 + T_{n - 1} 1_{T_{n - 1} < 16}$\n",
"\n",
"Where $1_{T_n < 16}$ is a random variable which is 1 if $T_n < 16$ and $0$ otherwise.\n",
"\n",
"Since harvesting will eventually reach a steady state where $T_n = T_{n - 1}$, the equation simplifies to:\n",
"\n",
"$T_n = T_0 + T_n 1_{T_n < 16}$\n",
"\n",
"We can solve for $T_n$ numerically, by iterating the operation on the right hand side starting at $T_n \\approx T_0$ until the change is small. The resulting distribution for $T_n$ with a 25 minute harvest period is plotted below."
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "71c1670d",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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DipmjeGgYk2lo6ODXC63rlTS3TVPpTQzG3oOKtZU8vk8s2bNolAo0NHRsa5EUinNrN5yuRx77bUXa9asYbfdduPyyy9n880357XXXmP69OmccMIJfPe73wVg8eLFvO1tbwPgoIMO4oILLqh5flavXs20adO466672GSTxlzeW6br+87OznDfX2bt4aGHHmK33XZrdDbYcsstefnllwE48cQT2XffffnsZz/LhRdeyJo1azjjjDMAePzxx/mHf/gHli+vaTdbGymVSpx77rlMnDiRE0/ceKToSsdN0oKI6KxVHnz3l5lZDUydOpVly5YBcNVVVzFjxox18x544AH22muvumz32GOP5dRTT2X//ffnq1/9KkcffTRXXXVVXbZVDVd/mVlbKBaLdasiXbNmDbfeeivTp09n9erVPProoxu07S1ZsoQ999yz6vVNnTqVl156aaP08847j2nTpm2QtmTJEj74wQ9y3333AUlp5f777x/YjtSAg4qZtbxKt6LXIrC89tprTJ48GUgCwcknn8yzzz7L2LFjN1jugQce4NBDD90g7ZVXXuGf//mfGTlyJAceeOAG1VVz586tavurVq1i5cqVnH322evScrkcI0eO5KWXXmLMmDED27FBcFCxYW0wvy7r+cvUmkulW9FrcU6MHj2ahQsXbpRW/uT6kiVL+MxnPrNB2k9/+lNmzpzJkUceyXHHHbdBUKm2pLJ06VL222+/jRrlX3/9dUaNGjXQ3RqUugYVSdOBbwE54OKI+FrZ/M2AK4B9gRXAcRFRkLQpcDGwT5rHKyLiq/XMqw0/g/l1Wa9fptaceroVvR623nprSqUSq1atYtSoUaxdu5Y//elPGzWQd3V1rWtnyeVyG8yrtqSyZMmSdXeUdVuxYgXbbrtt3TuO7EndGuol5YALgcOB3YEPSdq9bLGTgeciYiJwAfD1NP1YYLOI2Isk4JwqqaNeebXhqacHHev9Xms93beiH3TQQUPyA+Owww7jN7/5DQDLli1j/PjxjBw5coNlxo8fT1dXFwBr164d0HYqBZW7776b973vfQNaXy3Us6QyBVgWEY8CSLoGmAE8mFlmBnBOOn0D8B0lHdQEsIWkTYDRwGrgxTrm1Yahwfy6HMpfptYc8vl8zYNJ9+3E5U477TQuuOACpk2bxqRJk3jwwQc3WuaYY47h9NNP5+abb+bI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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"def compute_T_n(T_0):\n",
" T_prev = np.zeros_like(T_0)\n",
" T_n = T_0\n",
" while np.linalg.norm(T_n - T_prev) > 0.000001:\n",
" T_prev = T_n\n",
" T_n_prime = T_n.copy()\n",
" T_n_prime[16:] = 0\n",
" T_n_prime[0] += T_n[16:].sum()\n",
" T_n = np.convolve(T_0, T_n_prime, mode='full')[:len(T_0)]\n",
" T_n /= T_n.sum() # renormalize to counteract error\n",
" return T_n\n",
"T_n = compute_T_n(T_0)\n",
"plt.scatter(random_ticks, T_0, c='grey', marker='.')\n",
"plt.scatter(random_ticks, T_n, c='C1', marker='.')\n",
"plt.legend([r'P$(T_0 = r)$', r'P$(T_n = r)$'])\n",
"plt.xlabel(\"Random ticks received\")\n",
"plt.ylabel(\"Probability\")\n",
"plt.title(\"Random ticks received over 25 mins including leftover ticks\")\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "b79d2d0e",
"metadata": {},
"source": [
"Notice that $T_n$ (orange) has a higher chance to have recived 30 to 50 random tick compared to $T_0$ (grey)."
]
},
{
"cell_type": "markdown",
"id": "0c2eb7b4",
"metadata": {},
"source": [
"We can compute the expected sugar cane growth by computing the probability of three seperate ranges of $T_n$:\n",
"\n",
"$\\begin{align}\n",
"T_n& \\lt 16 \\\\\n",
"16 \\le T_n& \\lt 32 \\\\\n",
"32 \\le T_n&\n",
"\\end{align}$\n",
"\n",
"These ranges are plotted below."
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "7e2a840a",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAYgAAAEWCAYAAAB8LwAVAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAAsTAAALEwEAmpwYAAAz4klEQVR4nO3de5xVdb3H/9ebu8lVBEWGa6gIaaOMgKWlJh70Z3FUTMlOZJjZ0bLL+Z30/MrM0rCTmUc9FwPRrJSkU4cKM9PIS6KAjhc0ckIQKBUQ8Tpxmc/vj+93w2KzZmYzs9fsy3yej8d+zFrfddnftWbt/dnf73et71dmhnPOOZevS6kz4Jxzrjx5gHDOOZfKA4RzzrlUHiCcc86l8gDhnHMulQcI55xzqTxAFJmk4ZLelNS11HnJkfQtSRslvVTqvLREkkkaU+C6kjRP0mZJj2Wdt2KQtFjS+SV677slzSxgvdWSTuqIPFUTScdJWlnqfBRbpw0Q8YPwTvwyf0nSrZJ6t3e/ZvaimfU2sx3FyGd7SRoOfBkYZ2YHljo/OUX4sjwWmALUmNnEImWrKki6QtKPkmlmdoqZ3VaqPHUESYMl3SHpr5K2SHpY0qTE8uMlNcXPfO7VatAshJk9aGaHFmNf8bvoW8XYV3t12gARfdjMegO1wJHAZaXNTiaGA5vM7JVi7KyMSkYjgNVm9tbebiipWzHWcaXTzP+nN7AUmADsB9wG/Drvh99f4w+43Kuqg2a7mVmnfAGrgZMS898Bfp2Ynwz8EXgNeBI4PrFsFPAA8AbwO+Am4Edx2UjAgG5x/iBgIfAq0AB8OrGfK4CfAj+M+1oB1CWWfwVYH5etBD7UzLH0i/vYAKwBvkoI/icB7wBNwJvArc1s/6/A34C/AufH/I+Jy24F/gtYBLwV93kYsDiemxXARxLn5TWgS5z/AfBK4n1uB74AXAXsABpjvm6Myw24EHg+7ucmQCn5nRW33RG3/0ZM/3Q8x6/Gc35QYhsDLor7fiFln7n/2yzgReCBmH4X8BKwJf7Pxye2uTXm8dfxf/Qo8O7E8inAn+K2NwJ/AM6Py7rE/9Ma4JX4/+uXl5fzgLXA5nhejgaeiufmxmb+l1OBrcC2eG6ejOmLc++dOFfPxXw/CxyV/7mI/+cXgBlFuh57xry/J7HuIMI1OjjOnwbUx/X+CByR95n9SjwHfyd+xlr5nL8OTIjTxwPr9uI7woB/jtfMG8A3gXfHfL1O+Oz2SNt3zOu/xLxuAeYDveKyTwIPpbzXGOCC+L/bGv9/v0x8j/wsntMXgM8ntp0ILIt5ehn4XtG+J4u1o0p75X0QaoCngevj/FBgE3BqvLCnxPlBcfkjwHeBHoSqjtdpPkA8APwn0ItQUtkAnBiXXUH4ojsV6Ap8G1gSlx1K+HI4KLHfdzdzLD8E/g/oE9f7MzCrkA8F4QvlJWA88C7gR+wZILYA74/nog/hS/jf4vGfGD88h8b1X2TXB3IlsAo4LLHsyDi9mMQXVuJD8iugP6HkswGY2ky+P0niQxbzsRE4ivBFdAPxSz6x73sJvyz3Sdlf7v/2Q2Df3DrAp+Ix9wS+D9Qntrk1XhcTgW7Aj4E747L943mZDnQHvghsZ1eA+FQ8j6MJv3z/F7g9Ly//TbhuTo7XyS+AwYTr8xXgg82cmyuI12MibXHivc8ifNEfDYjwxTQi+bmI5/FF4LQiX4+3AFcl1r0I+E2cPjIe1yTC52FmzE/PRN7qgWFp/8OUfNTG89Yv8VnYSvgSfQG4Dti3he0tHkdfwufj78B98X/WjxBYZ6Z9zmJeHyN8se9HCMYXpl27ifdKfua+lVjWBVgOXE74zI0mfK7+IfF99E9xujcwuWjfk8XaUaW94j/wTcKH2OI/vn9c9hXihzWx/j3xgh1O+KC/K7HsR6QEiHgh7wD6JNb9NvGXPOGD/LvEsnHAO3F6TPywnAR0b+E4usaLflwi7TPA4rQLN2X7W4BvJ+bHpFysP0wsP44QULok0u4ArojTtwNfAg4kBIjvEH795pcuFpMeII5NzP8UuLSZfO/2IQPmAt9JzPcm/BIbmdj3iS2ch9z/bXQL6/SP6/RLnJs5ieWnAn+K058gBvs4L2Adu76k7wP+ObH80Jjfbom8DE0s3wScnZj/GfCFZvJ5BS0HiHuAS1r4XHwj5vX4vOuiGNfjScBfEsseBj4Rp/8L+Gbe/lYSA2HM26cK/Hz3JfzouyyRdiDhM9aFXbUA/9PCPgx4f2J+OfCVxPy1wPfTPmcxrx9PzH8H+O+0azfxXs0FiEnAi3nrXwbMi9MPxP/Z/oWcm715dfY2iH80sz6Ef+5Ywq8+CPXbZ0l6LfcilBSGEH4RvGpmbyf2s7aZ/efWfSORtobwCzAneWfR20AvSd3MrIFQHXMF8IqkOyUdlPIe+xN+oa5p4T1aclBe/tOOJZl2ELDWzJqaeb8/EM7nBwgX7mLgg/H1YN52afLPR6E3DhxE4hyY2ZuEL9XkeWju/5S0cx1JXSXNlvQXSa8TPvSw6zppKb+7nVcLn+T885j/P+sGHJBIezkx/U7KfFtvqhgG/KWF5RcCfzSzxbmEIl6PvwfeJWmSpJGEX/k/j8tGAF/O+9wNI5yrnFb/h5L2AX5JCNDfThzDS2b2rJk1mdkLhKrVM1vZXXv+B229lvONAA7KOy//xq5rZRZwCPAnSUslndbG99lDZw8QAJjZHwhR+7sxaS2hBNE/8drXzGYT6ur3k/SuxC6GNbPrv8Z1+yTShhOK94Xk6ydmdizhAjHgmpTVNhJ+eY5oy3sQjqcmMZ92LJaY/iswTFLy2km+3x8IpYzj4/RDhOqpD8b5tH0Ww19JnANJ+wID2f08FPKeyXU+Bkwj/OrtR/hlD6E00Jq/kTiXksTu53a3/LKrZJr8Amqr1o5zLaEuvTkXAsMlXbfbTotwPVq4u++nwIz4+lXiB9RaQvVT8nP3LjO7o9Bjk9STUBW3jlByaYlRmu/AtwjVuQBIyr+7MP8Y1xLazZLnpY+ZnQpgZs+b2QxC9eM1wIJ4/bebB4hdvg9MkfReQpXRhyX9Q/wV2SveIldjZmsIDUJXSOoh6Rjgw2k7NLO1hAatb8d9HEGI9j9KWz9J0qGSTowXfCO7Gpvz3yP3gbtKUh9JIwhVPK2+R/RT4DxJh8Wg97VW1n+U8GvoXyV1l3Q84fjvjPl5Pub148AfzCzXcHYmuweIlwl1qcVyRzyO2njOrgYeNbPV7dhnH0K98ybCB/rqvdj218B4SWfEO24+T6jiSOb3i5JGxbtsrgbmm9n2duQ352VgZF4QT5oD/IukCfF5kjHxusl5g9A29QFJs6Ho1+NPgLOBc+N0zg+AC2PpQpL2lfT/5P3Aapak7sCCmLeZ+aVVSSdIGhH3PQyYTWhj6GhPEq6NWkm9CKWypPzPxmPAG5K+Immf+J30HklHA0j6uKRB8Xhfi9u0VlIviAeIyMw2EBrXLo9f7NMIxbgNhAj+/7LrfJ0LHEP44vgW4Q6Fvzez6xmEX55/JRSlv25mvysgSz0JF/BGQlF1MM3fhvs5wq+SVYRf7D8htC20yszuBv6DUPRvAJbERanHY2ZbCQHhlJi3/yTUIf8psdofCLfWrk3MC3g8sc71wHSFB93+o5C8tnIcvyMEt58Rfr2/Gzinnbv9IaF6ZD2hQXJJy6vvlp+NhMbg2YTr5GBCfXvOLYT2mgcIDaaNhP9jMdwV/26S9Hj+QjO7i3An2U8IweAXhIbU5DqvEW7OOEXSNyni9Whmj8blBwF3J9KXEe6uupFw51YDob6+UO8j3AV1MvBa4lmH4+LyIwk/2N6Kf58mBO4OZWZ/Bq4k3AH5POEcJc0FxsXqpF/EoHsaoTruBcL/YA6hVAshmK+Q9Cbhc3WOmb1TjLwqNnK4dpA0n9A4+fVS56W9JB0GPEO4c6QYv2adcxXKSxBtIOloSe+W1EXSVEJp4xclzlabSTpdUk9JAwh1mL/04OCc8wDRNgcS7s55k1A981kze6KkOWqfzxBuYfwL4bbcz5Y2O865cuBVTM4551J5CcI551yqqumQbP/997eRI0eWOhvOOVdRli9fvtHMBqUtq5oAMXLkSJYtW1bqbDjnXEWRtKa5ZV7F5JxzLpUHCOecc6kyDRCSpkpaKalB0qUpy3tKmh+XPxo77yJ24XCbpKclPSepGgfycc65spZZG4TCyGM3ER7XXwcslbTQzJ5NrDYL2GxmYySdQ3hI62xCFwU9zezw2D/Qs5LuaGe/Os65MrFt2zbWrVtHY2NjqbPSafTq1Yuamhq6d+9e8DZZNlJPBBrMbBWApDsJTxwnA8Q0dnVUtQC4MfZ6acC+sZOzfQj9y7+eYV6dcx1o3bp19OnTh5EjRxI+8i5LZsamTZtYt24do0aNKni7LKuYhrJ73+3r2HOMgp3rxK4dthC6aF5A6FDrb4RRrb5rZq/mv4GkCyQtk7Rsw4YNxT8C51wmGhsbGThwoAeHDiKJgQMH7nWJrVwbqScSunw4iDDy05cl7dE1tJndbGZ1ZlY3aFDqbbyuGq19DB68NvxtKc2VNQ8OHast5zvLKqb17D5ASg17DmKTW2ddrE7qR+ga+WOEcWq3EUavehioI3Qf7DqztY/BbR+BHVuhaw+YuTCk56cNm1jafDpXBbIsQSwFDo4DovQg9M2/MG+dhYRxniEM7n5/HJrxRcIg9LmRwSYDf8K51Q/C9nfAdoSAsPrB9DTnXLtlVoIws+2SLiYMkN4VuMXMVki6ElhmZgsJA2PcLqkBeJVdA7zcBMyTtIIw0Mw8M3sqq7y6CjLyOFAXsKZQWhgZx4JJS3POtUumbRBmtsjMDjGzd5vZVTHt8hgcMLNGMzvLzMaY2cTcHU9m9mZMH29m48zs37PMp6sgwybCAe+B/iN2VSWlpTnXijlz5lBbW0ttbS1dunTZOf3FL36xKPv/1Kc+xeDBg3nPe96zW/prr73G9OnTGTt2LIcddhiPPPJIUd4vC1XTF5PrRHr2Da9kIEhLc1Vl+ZrNLFm1icmjBzJhxIB27+/888/n/PPPZ/369bzvfe+jvr6+TfvZunUr27ZtY999990t/ZOf/CQXX3wxn/jEJ3ZLv+SSS5g6dSoLFixg69atvP322209hMyV611Mzjm30/I1mzl3zhKu/e1Kzp2zhOVrNhdt38888wyHH374Xm/33HPP8eUvf5lDDz2UP//5z3ss/8AHPsB+++021DdbtmzhgQceYNasWQD06NGD/v37tynfHcEDhHOu7C1ZtYnGbU00GWzb3sSSVZuKtu+nn356j2qg5rz11lvMmzePY489lk9/+tOMGzeOp556iiOPPLKg7V944QUGDRrEeeedx5FHHsn555/PW2+91Z7sZ8oDhHOu7E0ePZAu8Tb+7t26MHn0wKLte29KEEOGDGHu3LnMmTOHhx56iFmzZtGnT5+C32v79u08/vjjfPazn+WJJ55g3333Zfbs2W3NeuY8QLjy1p4H4PzhuaoxYcQAxh7Yh5oB+/Dj8ycXpQ0iJ78EsX79ek444QSuu+46zj777N3WXbBgAUOHDuWMM87gyiuvZM2aZodSSFVTU0NNTQ2TJk0CYPr06Tz++OPtP4iMeIBw5Sv3UNz9V4W/e/NF355tXVnq06s7Q/vvU9Tg0NTUxPPPP89hhx22M+3JJ5/kYx/7GF/84hfp1m33+3hOPvlk5s+fz4MPPki/fv2YNm0aJ510EqtXry7o/Q488ECGDRvGypUrAbjvvvsYN25c0Y6n2DxAuPLVngfg/OG5qjP/M8cw/zPHFHWfDQ0N1NTU0KNHj51pTz75JMcdF56laa57ioEDB3LJJZdQX1/P1VdfTdeuXfdYZ8aMGRxzzDGsXLmSmpoa5s6dC8ANN9zAueeeyxFHHEF9fT3/9m//VtRjKia/zdWVr+Yeist6W9dpHHLIITz77LO7pTU0NHDIIYewceNGDjzwwFb3MXFi+q3Vd9xxR2p6bW1txQyP7AHCla/cA3CNW+DMOXv3jEN7tnWdWu6X/v777893v/vdEuemtDxAuPLWngfg/OE559rF2yCcc86l8gDhnHMulQcI55xzqTxAOOecS+UBwjnnXCoPEM4551JlGiAkTZW0UlKDpEtTlveUND8uf1TSyJh+rqT6xKtJUm2WeXXOObe7zAKEpK6EoUNPAcYBMyTldzoyC9hsZmOA64BrAMzsx2ZWa2a1wD8BL5hZfVZ5dc45t6csSxATgQYzW2VmW4E7gWl560wDbovTC4APac/OT2bEbZ1znVkGvfMWe1jQLIcxbWxsZOLEibz3ve9l/PjxfP3rXwdg7dq1nHDCCYwbN47x48dz/fXXt/u9crJ8knoosDYxvw6Y1Nw6ZrZd0hZgILAxsc7Z7BlYAJB0AXABwPDhw4uTa+dc+cn1zrtja+hbq0hjjxd7WNAshzHt2bMn999/P71792bbtm0ce+yxnHLKKYwYMYJrr72Wo446ijfeeIMJEyYwZcqUovQSW9aN1JImAW+b2TNpy83sZjOrM7O6QYMGdXDuXEXyMSIqU0a987ZnWNB33nmHRYsW8bnPfY5FixbttiyLYUwl0bt3bwC2bdvGtm3bkMSQIUM46qijAOjTpw+HHXYY69ev3+v3TpNlgFgPDEvM18S01HUkdQP6AcmxBM8B0rtEdNUn6y9vHyOicuV654XMe+dtaVjQhoYGbrjhBk455RSOPvpo7r77bk499VROPPHE3faR1TCmO3bsoLa2lsGDBzNlypSdAw/lrF69mieeeGKP9LbKsoppKXCwpFGEQHAO8LG8dRYCM4FHgOnA/WZmAJK6AB8FvJ/mziCjKoTd5H6Fwq5fod6RX2XowN55c8OC3nDDDUyaNIlLLrmE2bNn881vfpMzzzyTlStX8oUvfIF58+Y12x34M888w5QpUwp6vyFDhnDEEUcwZ84cxo4d2+K6Xbt2pb6+ntdee43TTz+dZ555ZmcgevPNNznzzDP5/ve/T9++fffuoJuRWQnCzLYDFwP3AM8BPzWzFZKulPSRuNpcYKCkBuBLQPJW2A8Aa81sVVZ5dGWkIwb46cBfoS4DPftCv2GZB/WWhgWtr6/nj3/8I71792b69OlMmjSJr33ta7z44ou77SPrYUz79+/PCSecwG9+8xsgVDmdeeaZnHvuuZxxxhntOv6kTNsgzGyRmR1iZu82s6ti2uVmtjBON5rZWWY2xswmJoOBmS02s8lZ5s+VkY748s79Cu0/IpsSiqsKLQ0LKomjjjqKr371qzz00EPcfffdjB8/ng0bNuzcPqthTDds2MBrr70GhPaPe++9l7Fjx2JmzJo1i8MOO4wvfelLRT0XPh6EKw8dVYXgY0RUrvN+XfRdzpgxg8WLF7Nx40Zqamr4xje+waxZs3YOC7p161ZGjx7NvHnzADjppJN46aWX9tjPVVddxYQJE4DmhzE9/fTTgdaHMb3kkkt47LHH9hjG9G9/+xszZ85kx44dNDU18dGPfpTTTjuNhx56iNtvv53DDz+c2tpaAK6++mpOPfXUdp8fDxCufPiXt+tgezss6O9+97tW95nVMKZHHHEETzzxxB7pxx57LLHptug8QDjnXMYqdRjTsn4OwjnnXOl4gHDOOZfKA4RzzrlUHiCcc86l8gDhnHMulQcI55xzqTxAOOecS+UBwjnnXCoPEM4551J5gHDOVYT6V+qZ8/Qc6l+pL8r+shjCM8shR0vBu9pwzpW9+lfq+fRvP83WHVvp0bUHPzj5B9QOrm3XPrMYwrNYQ46WCy9BOOfK3rKXl9G4o5EmmtjWtI1lL+/Zkd7eau8QnlkMOVpuvAThHIQR7VY/GMah8N5ky07dAXUIYRjdu3Sn7oC6oux3x44dTJgwgYaGBi666KJWh/BsaGjg7rvvZtGiRTurok499VROOOGE3bbbmyFHy1mmAULSVOB6oCswx8xm5y3vCfwQmEAYi/psM1sdlx0B/A/QF2gCjjazxizz6zqpjhju1LVL7eBaDh1wKG9se4PZx81ud/VSzt4O4ZnFkKPlLLMqJkldgZuAU4BxwAxJ+ZV4s4DNZjYGuA64Jm7bDfgRcKGZjQeOB7ZllVfXyXXEcKeu3Xr36M2QfYcULTgkFTqEZxZDjpazLNsgJgINZrbKzLYCdwLT8taZBtwWpxcAH1IYbulk4CkzexLAzDaZ2Y4M8+o6Mx+rulNqyxCeWQw5Ws6yzOlQYG1ifh0wqbl1zGy7pC3AQOAQwCTdAwwC7jSz7+S/gaQLgAsAhg8fXvQDcBkpt/r+jhru1LXLvKnzirq/tgzhmeWQo+WoXENZN+BY4GjgbeA+ScvN7L7kSmZ2M3AzQF1dXTZj7rniKtf6fh/utNNpyxCeHTXkaLnIsoppPTAsMV8T01LXie0O/QiN1euAB8xso5m9DSwCjsowr66jeH2/64Tmzp1Lly5dfMjRhKXAwZJGSeoBnAMszFtnITAzTk8H7rcQuu8BDpf0rhg4Pgg8i6t8Xt/vXMXIrIoptilcTPiy7wrcYmYrJF0JLDOzhcBc4HZJDcCrhCCCmW2W9D1CkDFgkZn9Oqu8ug7k9f3OVYxM2yDMbBGheiiZdnliuhE4q5ltf0S41dVVG6/vd64ieFcbzrmSaK4h2GWjLefbA4RzrsP16tWLTZs2eZDoIGbGpk2b6NWr115tV663uTrnqlhNTQ3r1q3b7QEzl61evXpRU1OzV9t4gHDOdbju3bszatSoUmfDtcKrmJxzzqXyAOGccy6VBwjnnHOpPEA455xL5QHCOedcKg8QzjnnUnmAcM45l8oDhHPOuVQeIJxzzqXyAOFcc9Y+Bg9eG/461wl5VxvOpSnXoVGd60BegnAujQ+N6ly2AULSVEkrJTVIujRleU9J8+PyRyWNjOkjJb0jqT6+/jvLfDq3Bx8a1bnsqpgkdQVuAqYA64ClkhaaWXJs6VnAZjMbI+kc4Brg7LjsL2ZWm1X+nGuRD43qXKYliIlAg5mtMrOtwJ3AtLx1pgG3xekFwIckKcM8OVe4nn2h3zAPDq7TyjJADAXWJubXxbTUdcxsO7AFGBiXjZL0hKQ/SEot30u6QNIySct84BHnnCuucm2k/hsw3MyOBL4E/ERS3/yVzOxmM6szs7pBgwZ1eCadc66aZRkg1gPDEvM1MS11HUndgH7AJjP7u5ltAjCz5cBfgEMyzKvLij9L4FzFKihASPqwpL0NJkuBgyWNktQDOAdYmLfOQmBmnJ4O3G9mJmlQbORG0mjgYGDVXr6/K7XcswT3XxX+epBwrqIU+qV/NvC8pO9IGlvIBrFN4WLgHuA54KdmtkLSlZI+ElebCwyU1ECoSsrdCvsB4ClJ9YTG6wvN7NUC8+rKhT9L4FxFK+g2VzP7eGwDmAHcKsmAecAdZvZGC9stAhblpV2emG4EzkrZ7mfAzwo6Ale+cs8SWJM/S+BcBSq42sjMXif8mr8TGAKcDjwu6XMZ5c1VutyzBP1HeFcVzlWgQtsgpkn6ObAY6A5MNLNTgPcCX84ue67i+bMEzlWsQp+kPgO4zsweSCaa2duSZhU/W84550qt0Cqml/KDg6RrAMzsvqLnyjnnXMkVGiCmpKSdUsyMOOecKy8tVjFJ+izwz8C7JT2VWNQHeDjLjDnnnCut1togfgLcDXybXc8oALzhzyU451x1ay1AmJmtlnRR/gJJ+3mQcM656lVICeI0YDlgQLIrbgNGZ5Qv55xzJdZigDCz0+LfUR2THeecc+WitUbqo1pabmaPFzc7zpW5tY+FPqVGHucP/7mq11oV07UtLDPgxCLmxbnyluuddsfW0LeUdx/iqlxrVUwndFRGnCt7ud5pYVfvtB4gXBVrrYrpRDO7X9IZacvN7H+zyZZzZch7p3WdTGtVTB8E7gc+nLLMAA8QrvPI9U7buAXOnOOlB1f1Wqti+nr8e17HZMe5Mtezb3h5cHCdQKHdfQ+U9B+SHpe0XNL1kgYWsN1USSslNUi6NGV5T0nz4/JHJY3MWz5c0puS/qXgI3LOOVcUhXbWdyewATiTMHb0BmB+SxvEMaVvInTqNw6YIWlc3mqzgM1mNga4Drgmb/n3CF19OOec62CFBoghZvZNM3shvr4FHNDKNhOBBjNbZWZbCUFmWt4604Db4vQC4EOSBCDpH4EXgBUF5tE551wRFRogfivpHEld4uujwD2tbDMUWJuYXxfTUtcxs+3AFmCgpN7AV4BvFJg/55xzRdbaba5vsKsPpi8AP4qLugBvAlm1DVxBGMHuzVigaC5/FwAXAAwfPjyjrDjnXOfU2l1Mfdqx7/XAsMR8TUxLW2edpG5AP2ATMAmYLuk7QH+gSVKjmd2Yl7+bgZsB6urqrB15dc45l6fQMamRNAA4GOiVS8sfhjTPUuBgSaMIgeAc4GN56ywEZgKPEBq/7zczA3Y+gSTpCuDN/ODgnHMuWwUFCEnnA5cQSgH1wGTCl3qzfTGZ2XZJFxPaKroCt5jZCklXAsvMbCEwF7hdUgPwKiGIOOecKwOFliAuAY4GlpjZCZLGAle3tpGZLQIW5aVdnphuBM5qZR9XFJhHV2re06lzVaXQANFoZo2SkNTTzP4k6dBMc+Yqi/d06lzVKfQ213WS+gO/AO6V9H/Amqwy5SpQrqdT27Grp1PnXEUrqARhZqfHySsk/Z5wt9FvMsuVqzze06lzVWdv7mI6CjiW8FzEw/HpaOcC7+nUuapTaGd9lxO6xBgI7A/Mk/TVLDPmKlDPvtBvmAcH56pEoSWIc4H3xruOkDSbcLvrtzLKl3POuRIrtJH6ryQekAN6sudT0c4556pIa30x3UBoc9gCrJB0b5yfAjyWffacqwD+/IerUq1VMS2Lf5cDP0+kL84kN85VGn/+w1Wx1jrry43VgKQewCFxdqWZbcsyY85VhNzzH7Dr+Q8PEK5KFNoX0/GEu5hWE7r+HiZpZiud9TlX/fz5D1fFCr2L6VrgZDNbCSDpEOAOYEJWGXOuIvjzH66KFRoguueCA4CZ/VlS94zy5Fxl6dk3vDw4uCpTaIBYLmkOu0aUO5ddDdjOOeeqUKEB4kLgIuDzcf5B4D8zyZFzzrmy0GqAkNQVeNLMxgLfyz5LzjnnykGrT1Kb2Q5gpaThe7tzSVMlrZTUIOnSlOU9Jc2Pyx+VNDKmT5RUH19PSjp9j50755zLVKFVTAMIT1I/BryVSzSzjzS3QSx53ER46nodsFTSQjN7NrHaLGCzmY2RdA5wDXA28AxQF4ctHQI8KemXZrZ9bw7OOedc2xUaIL7Whn1PBBrMbBWApDuBaUAyQEwDrojTC4AbJcnM3k6s04vQvYdzzrkO1FpfTL0IDdRjgKeBuXvxK34osDYxvw6Y1Nw6sbSwhdCl+EZJk4BbgBHAP3npwTnnOlZrbRC3AXWE4HAK4YG5DmFmj5rZeOBo4LIYrHYj6QJJyyQt27BhQ0dlzTnnOoXWAsQ4M/u4mf0PMB3Ym34E1gPDEvM17NlF+M51JHUjDGW6KbmCmT0HvAm8J/8NzOxmM6szs7pBgwbtRdacc861prUAsbNDvjZU8SwFDpY0Knb0dw6wMG+dhcDMOD0duN/MLG7TDUDSCGAsoR8o55xzHaS1Rur3Sno9TgvYJ84LMDPr29yGsU3hYuAeoCtwi5mtkHQlsMzMFgJzgdslNQCvEoIIhLGvL5W0DWgC/tnMNrbxGJ1zzrVBa919d23Pzs1sEbAoL+3yxHQjcFbKdrcDt7fnvV22lq/ZzJJVm5g8eiATRgwodXaccxko9DZX53ZavmYz585ZwtbtTfTo1oUfnz/Zg0Q+H2XOVQEPEG6vLVm1icZtTQBs297EklWbPEAk+Shzrkq02tWGc/kmjx5IF4Xp7t26MHn0wNJmqNzkRpmzHbtGmXOuAnkJwu21CSMGMPbAPrzeuJ3rzznSSw/5fJQ5VyU8QLg26dOrO316dffgkMZHmXNVwgOEc1nwUeZcFfA2COecc6k8QDjnnEvlAcI551wqDxDOOedSeYBwzjmXygOEc865VB4gnHPOpfIA4ZxzLpUHCOecc6k8QDjXUdY+Bg9eG/46VwG8qw3nOoJ3Ae4qUKYlCElTJa2U1CDp0pTlPSXNj8sflTQypk+RtFzS0/HviVnm07nMeRfgrgJlFiAkdQVuAk4BxgEzJI3LW20WsNnMxgDXAdfE9I3Ah83scGAmPvyoq3S5LsDBuwB3FSPLEsREoMHMVpnZVuBOYFreOtOA2+L0AuBDkmRmT5jZX2P6CmAfST0zzKtz2cp1Ad5/hFcvuYqRZYAYCqxNzK+LaanrmNl2YAuQPzzZmcDjZvb3/DeQdIGkZZKWbdiwoWgZdy4TPftCv2EeHFzFKOu7mCSNJ1Q7fSZtuZndbGZ1ZlY3aNCgjs1cJ7J8zWZu+n0Dy9dsLnVWnHMdKMu7mNYDwxLzNTEtbZ11kroB/YBNAJJqgJ8DnzCzv2SYT9eC5Ws2c+6cJWzd3kSPbl348fmTfRQ55zqJLEsQS4GDJY2S1AM4B1iYt85CQiM0wHTgfjMzSf2BXwOXmtnDGebRtWLJqk00bmuiyWDb9iaWrNpU6iw55zpIZgEitilcDNwDPAf81MxWSLpS0kfianOBgZIagC8BuVthLwbGAJdLqo+vwVnl1TVv8uiBdFGY7t6tC5NH5zcROeeqVaYPypnZImBRXtrlielG4KyU7b4FfCvLvLnCTBgxgLEH9uH1xu1cf86RXr3kXCfiT1K7VvXp1Z0+vbp7cMjC2sfCQ3Mjj/O7m1zZ8QDhXKl49xuuzJX1ba7OVTXvfsOVOQ8QzpWKd7/hypxXMTlXKrnuNxq3wJlzvHrJlR0PEM6VUs++4eXBwZUhr2JyzjmXygOEc865VB4gnCtD9a/UM+fpOdS/Ul/qrLhOzNsgnCsz9a/U8+nffpqtO7bSo2sPfnDyD6gdXFvqbLlOyEsQzpWZZS8vo3FHI000sa1pG8teXlbqLLlOygOEc2Wm7oA6ROghsXuX7tQdUFfiHLnOygOE240PDlR6tYNrOXTAoQztPdSrl1xJeRuE28kHByofvXv0pneP3h4cXEl5CcLt5IMDlTe/s8l1NC9BuJ1ygwM1mQ8OVG78ziZXCpmWICRNlbRSUoOkS1OW95Q0Py5/VNLImD5Q0u8lvSnpxizz6HbJDQ5UM2Afr14qM35nkyuFzAKEpK7ATcApwDhghqRxeavNAjab2RjgOuCamN4IfA34l6zy59L16dWdof338eBQZvzOJlcKWZYgJgINZrbKzLYCdwLT8taZBtwWpxcAH5IkM3vLzB4iBArnOr3m7mzydgmXpSzbIIYCaxPz64BJza1jZtslbQEGAhsLeQNJFwAXAAwfPry9+XWurOXf2eTtEi5rFX0Xk5ndbGZ1ZlY3aNCgUmfHuQ7l7RIua1kGiPXAsMR8TUxLXUdSN6Af4PdWOleA5tolvNrJFUuWVUxLgYMljSIEgnOAj+WtsxCYCTwCTAfuNzPLME/OVY1cu8Qb295g9nGzqR1c69VOrqgyCxCxTeFi4B6gK3CLma2QdCWwzMwWAnOB2yU1AK8SgggAklYDfYEekv4RONnMns0qv85Vovx2iVy1E7Cz2skDhGurTB+UM7NFwKK8tMsT043AWc1sOzLLvHV2y9dsZsmqTUwePdBvaa0iuWonw/aodlr28jLqDqjzgOEK5k9Sd0Le51L18monV0wVfReTaxvvc6m69e7RmyH7Dtmj2in/bidvzHat8RJEJ+R9LnUuadVOXqpwhfASRCfkfS51LmlPYbf0DIWXLFyOlyA6qT69utOnV3cPDp1E/t1OLTVme8nC5XgJwrlOqLm+nby9wiV5CcK5Tipt1Dpvr3BJXoLoBHycaVeovWmv8FJF9fMSRJXzZx7c3iqkvcJLFZ2DlyCqnD/z4NrLSxWdl5cgqpw/8+CKwUsVnZOXIKqcP/PgsuClis7BSxBVJq0TPn/mwWWhPaUK7zywMniAqCLeIO1KKa2jwDlPz9mj+3Gg2aooDxzlxQNEFck1SMOuBmkPEK4jFVKqaG7MCi9tlB8PEBUsvzrJG6RduUkrVQCp3XykBQ5IL2140OgYmQYISVOB6wkjys0xs9l5y3sCPwQmEMaiPtvMVsdllwGzgB3A583snizzWu7yg0Fz1UljD+zD643buf6cI7304MpCfqmiuaBRaGkDCg8ahaa5dJkFCEldgZuAKcA6YKmkhXnDhs4CNpvZGEnnANcAZ0saRxh+dDxwEPA7SYeY2Y4s8prWsFuqtLT0tGDQXHWSN0i7SpDWzUehpY1Cg0ahaS2VSNoTdNobsMoh4GVZgpgINJjZKgBJdwLTgGSAmAZcEacXADdKUky/08z+DrwQx6yeCDxS7EymffkCJUnbm2Dg1UmuGhVa2ig0aBSa1lzQaGvQaU9ae9+7mEEiywAxFFibmF8HTGpuHTPbLmkLMDCmL8nbdmj+G0i6ALgAYPjw4W3K5JJVm9i6fc8njUuRNmHEgNT8TB49kF7du7Bte9POYDBhxADuuvB9e5RA5n/mmD2OsdC0dm9/3q/bntbe7Sv1vZvJz7yp80qSVo7vfddH7tptvnZwLT885Yd7/Gru1bUX25q27dauUUjaspeXsXXH1t2e38g915GfDmSe1t73rpQAkTkzuxm4GaCurs7aso/JowfSo9vuX75AydLS8jNhxICdJYlkMJgwYoBXJblOqXZw7R7VUz84+Qd7BI1C03p07bFHIKk7oC41vSPS2vvexSKzNn2vtr5j6RjgCjP7hzh/GYCZfTuxzj1xnUckdQNeAgYBlybXTa7X3PvV1dXZsmXLmlvconJvg3DOZaszt0FIWm5mqZElywDRDfgz8CFgPbAU+JiZrUiscxFwuJldGBupzzCzj0oaD/yE0O5wEHAfcHBLjdTtCRDOOddZtRQgMqtiim0KFwP3EG5zvcXMVki6ElhmZguBucDtsRH6VcKdS8T1fkpo0N4OXJTVHUzOOefSZVaC6GhegnDOub3XUgnCe3N1zjmXygOEc865VB4gnHPOpfIA4ZxzLlXVNFJL2gCsaccu9gc2Fik7pVZNxwLVdTzVdCxQXcdTTccChR/PCDMblLagagJEe0la1lxLfqWppmOB6jqeajoWqK7jqaZjgeIcj1cxOeecS+UBwjnnXCoPELvcXOoMFFE1HQtU1/FU07FAdR1PNR0LFOF4vA3COedcKi9BOOecS+UBwjnnXKpOHyAkTZW0UlKDpEtLnZ+9JekWSa9IeiaRtp+keyU9H/9WxKASkoZJ+r2kZyWtkHRJTK/U4+kl6TFJT8bj+UZMHyXp0XjNzZfUo9R5LZSkrpKekPSrOF/Jx7Ja0tOS6iUti2kVea0BSOovaYGkP0l6TtIx7T2eTh0gJHUFbgJOAcYBMySNK22u9tqtwNS8tEuB+8zsYMJYGpUS+LYDXzazccBk4KL4/6jU4/k7cKKZvReoBaZKmgxcA1xnZmOAzcCs0mVxr10CPJeYr+RjATjBzGoTzwtU6rUGcD3wGzMbC7yX8H9q3/GYWad9AccA9yTmLwMuK3W+2nAcI4FnEvMrgSFxegiwstR5bONx/R8wpRqOB3gX8DhhXPaNQLeYvts1WM4voCZ+yZwI/ApQpR5LzO9qYP+8tIq81oB+wAvEG4+KdTydugQBDAXWJubXxbRKd4CZ/S1OvwQcUMrMtIWkkcCRwKNU8PHEKpl64BXgXuAvwGtmtj2uUknX3PeBfwWa4vxAKvdYAAz4raTlki6IaZV6rY0CNgDzYhXgHEn70s7j6ewBoupZ+OlQUfcyS+oN/Az4gpm9nlxWacdjZjvMrJbw63siMLa0OWobSacBr5jZ8lLnpYiONbOjCFXMF0n6QHJhhV1r3YCjgP8ysyOBt8irTmrL8XT2ALEeGJaYr4lple5lSUMA4t9XSpyfgknqTggOPzaz/43JFXs8OWb2GvB7QjVM/zhmO1TONfd+4COSVgN3EqqZrqcyjwUAM1sf/74C/JwQwCv1WlsHrDOzR+P8AkLAaNfxdPYAsRQ4ON6J0YMwJvbCEuepGBYCM+P0TEJdftmTJMI45c+Z2fcSiyr1eAZJ6h+n9yG0pzxHCBTT42oVcTxmdpmZ1ZjZSMLn5H4zO5cKPBYASftK6pObBk4GnqFCrzUzewlYK+nQmPQh4Fnaezylblwp9Qs4FfgzoW74/yt1ftqQ/zuAvwHbCL8iZhHqhu8Dngd+B+xX6nwWeCzHEorATwH18XVqBR/PEcAT8XieAS6P6aOBx4AG4C6gZ6nzupfHdTzwq0o+lpjvJ+NrRe6zX6nXWsx7LbAsXm+/AAa093i8qw3nnHOpOnsVk3POuWZ4gHDOOZfKA4RzzrlUHiCcc86l8gDhnHMulQcIVxYk7Yi9aj4j6Ze55weKsN9PSrqxGPvK2+8XJL0rMb+opTxLulXS9OaWd7TYFUO7O6bM6vy68uABwpWLdyz0qvke4FXgolJnqBVfIHTAB4CZnWrhaenMJJ5YbjczO9/Mni3W/lx18gDhytEjxE7fJE2U9EjsgOyPuSdF4y/X/5X0m9jX/XdyG0s6T9KfJT1G6CIilz5S0v2SnpJ0n6ThMf1WSf8laYmkVZKOVxhn4zlJt+ZnTtLngYOA30v6fUxbLWn/OP2J+B5PSro9ZftvxvfsKmm2wvgXT0n6bsq6V0i6XdLDwO3x6eyfSVoaX++P6/WWNC+Ob/CUpDNj+snx/D0u6a7YzxWSFkuqk3ShpH9PvN/OEoGkjyuMZ1Ev6X9i9/jNnl9XhUr99J+//GVmAG/Gv10JT+ROjfN92dWd9EnAz+L0J4FVhG6OewFrCP1qDQFeBAYBPYCHgRvjNr8EZsbpTwG/iNO3EvoXEjANeB04nPADajlQm5Lf1SS6is7NA+MJT+bvH9P3S7zHdODfgf+O7zWQ0B1z7oHV/invc0XMwz5x/ieETuYAhhO6JYEwLsP3E9sNiPl5ANg3pn2FXU9zLwbq4nlqSGx3N+GJ9sPi+eoe0/8T+ERL59df1fcqWpHVuXbaJ3aLPZTQX9G9Mb0fcJukgwndcHRPbHOfmW0BkPQsMILwpbjYzDbE9PnAIXH9Y4Az4vTtwHcS+/qlmZmkp4GXzezpuP0Kwngb9QUex4nAXWa2EcDMXk0s+xrwqJldEPe9BWgE5iqM0ParZva50MzeidMnAeNCt1UA9I2lgpMIfSQR33ezQg+s44CH4/o9CKUzEuttiKWmyYTuGMYSvvQvAiYAS+O2+xA6eptE8+fXVRkPEK5cvGNmtbHh9x7CF9R/AN8Efm9mpyuMEbE4sc3fE9M7aN/1nNtXU95+m9q536SlwARJ+5nZq2a2XdJEQsdq04GLCQEm31uJ6S7AZDNrTK6QCBi7JQP3mtmMVvJ1J/BR4E/Az2OgFHCbmV2W9z7/2Mq+XBXxNghXVszsbeDzwJdjo2w/dnUh/ckCdvEo8EFJAxW6Dj8rseyP7PqVfS7wYDuy+gbQJyX9fuAsSQMhjHGcWPYbYDbwa0l94i//fma2CPgiYZjI1vwW+FxuRlJtnLyXRMO+wtjDS4D3SxoT0/aVlPZr/+eEqrUZhGABoYO36ZIG545D0ghaPr+uyniAcGXHzHI9oM4gVAN9W9ITFPBL3sLoWVcQqlIeZvfxkz8HnCfpKeCfCOMrt9XNwG9yjdSJ918BXAX8QdKTwPfylt8F/IDQDXMf4FcxPw8BXyrgfT8P1MWG6GeBC2P6t4ABCrcJP0kYa3kDIajeEd/jEVIGLDKzzYTzNMLMHotpzwJfJYy49hQhAA1p5fy6KuO9uTrnnEvlJQjnnHOpPEA455xL5QHCOedcKg8QzjnnUnmAcM45l8oDhHPOuVQeIJxzzqX6/wGDRhQQKcMatAAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Probability of no growths: 7.21%\n",
"Probability of one growths: 84.68%\n",
"Probability of two growths: 8.10%\n",
"\n",
"Expected number of growths over 25 minutes: 1.01\n"
]
}
],
"source": [
"def probabilities(sample_count):\n",
" T_0_dist = binom(sample_count, 16**-3)\n",
" random_ticks = np.arange(0, max(24, T_0_dist.ppf(0.999999)))\n",
" T_0 = T_0_dist.pmf(random_ticks)\n",
" T_n = compute_T_n(T_0)\n",
" chance_no_growth = T_n[:16].sum()\n",
" chance_one_growth = T_n[16:32].sum()\n",
" chance_two_growths = 1 - (chance_no_growth + chance_one_growth)\n",
" return (chance_no_growth, chance_one_growth, chance_two_growths)\n",
"\n",
"\n",
"def expected_growth(sample_count):\n",
" return (np.arange(0, 3) * probabilities(sample_count)).sum()\n",
"expected_growth = np.vectorize(expected_growth)\n",
"\n",
"plt.stem(random_ticks[:16], T_n[:16], linefmt='C0', markerfmt='C0.', basefmt=' ')\n",
"plt.stem(random_ticks[16:32], T_n[16:32], linefmt='C1', markerfmt='C1.', basefmt=' ')\n",
"plt.stem(random_ticks[32:], T_n[32:], linefmt='C2', markerfmt='C2.', basefmt=' ')\n",
"plt.legend([\n",
" r'$T_n < 16$',\n",
" r'$16 ≤ T_n < 32$',\n",
" r'$32 ≤ T_n$',\n",
"])\n",
"plt.xlabel(\"Random ticks received\")\n",
"plt.ylabel(\"Probability\")\n",
"plt.title(\"Regions of growth for random ticks over 25 minutes\")\n",
"plt.show()\n",
"\n",
"probability_no_growths, probability_one_growth, probability_two_growths = probabilities(60*60*25)\n",
"print(f\"Probability of no growths: {probability_no_growths:0.2%}\")\n",
"print(f\"Probability of one growths: {probability_one_growth:0.2%}\")\n",
"print(f\"Probability of two growths: {probability_two_growths:0.2%}\")\n",
"print()\n",
"print(f\"Expected number of growths over 25 minutes: {expected_growth(60*60*25):0.2f}\")"
]
},
{
"cell_type": "markdown",
"id": "5f2893e7",
"metadata": {},
"source": [
"Using the expected growths, we can plot the expected number of growths for harvest periods up to one hour (after which, the expected value is almost 2.00)."
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "a0d1eb39",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sample_counts = np.arange(60, 60*60*60, 100)\n",
"expected_growths = expected_growth(sample_counts)\n",
"\n",
"minutes = sample_counts / 60 / 60\n",
"plt.plot(minutes, expected_growths)\n",
"plt.xlabel(\"Harvest period in minutes\")\n",
"plt.ylabel(\"Expected number of growths\")\n",
"plt.title(\"Expected number of growths per harvest period\")\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "c05528fc",
"metadata": {},
"source": [
"Finally, to get the expected *rate* of growth, if the sugar cane plant is harvested every $n$ minutes, we divide the expected number of growths after $n$ minutes by the number of minutes."
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "29a34550",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"expected_growths_per_minute = expected_growths / minutes\n",
"plt.plot(minutes, expected_growths_per_minute * 60)\n",
"plt.xlabel(\"Harvest period in minutes\")\n",
"plt.ylabel(\"Expected growth per hour\")\n",
"plt.title(\"Expected number of growths per hour v.s. harvest period\")\n",
"plt.ylim(0, 3.5)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "863ea64d",
"metadata": {},
"source": [
"We can visually see three rough maxima: a global maximum when harvesting every tick, and two local maxima at about 21 minutes, and 41 minutes. After the second local maximum, the rate slowly tapers off roughly in proportion with the inverse of the harvest period. The global maximum can be computed analytically, and the two local maxima can be comuted numerically.\n",
"\n",
"As discussed in the problem statement, harvesting sugar cane immediately after it grows gives the ideal maximum yeild. The maximum yeild is easily computed as the number of random ticks in an hour times the chance of a reciving a single random tick devided by 16 ticks per growth."
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "2aa441a5",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Maximum growth per hour: 3.30\n"
]
}
],
"source": [
"maximum_growth_per_hour = 60*60*60 * 16**-3 / 16\n",
"print(f\"Maximum growth per hour: {maximum_growth_per_hour:0.2f}\")"
]
},
{
"cell_type": "markdown",
"id": "ac581e3e",
"metadata": {},
"source": [
"The first local maximum occurs just after the average time it takes sugar cane to grow one stage. Harvesting just before a sugar cane grows means that it will grow soon after the havest and barely not grow a second time before the next harvest, wasting almost 16 ticks. Since this would happen every other cycle, the first local minimum is about $2 / 3$ of the global maximum.\n",
"\n",
"The time of and growth rate at the first local maximum is computed below."
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "c1834c18",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Period of first local maximum: 20.51 min\n",
"Growth rate at first local maximum: 2.57 sugar cane per hour\n"
]
}
],
"source": [
"sample_counts = np.arange(60*60*20, 60*60*22)\n",
"minutes_first_max = sample_counts / 60 / 60\n",
"expected_growths = expected_growth(sample_counts)\n",
"expected_growths_per_minute_first_max = expected_growths / minutes_first_max\n",
"\n",
"max_expected_growth_rate = expected_growths_per_minute_first_max.argmax()\n",
"period_of_first_max = minutes_first_max[max_expected_growth_rate]\n",
"growth_rate_of_first_max = expected_growths_per_minute_first_max[max_expected_growth_rate]\n",
"\n",
"print(f\"Period of first local maximum: {period_of_first_max:0.2f} min\")\n",
"print(f\"Growth rate at first local maximum: {growth_rate_of_first_max * 60:0.2f} sugar cane per hour\")"
]
},
{
"cell_type": "markdown",
"id": "0c620222",
"metadata": {},
"source": [
"The second local maximum has a similar explanation, except caused by the sugar cane's second growth instead of its first. It's computed below and its growth rate is slightly higher than the first maximum's."
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "b1cee745",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Period of second local maximum: 41.04 min\n",
"Growth rate at second local maximum: 2.59 sugar cane per hour\n"
]
}
],
"source": [
"sample_counts = np.arange(60*60*40, 60*60*42)\n",
"minutes_second_max = sample_counts / 60 / 60\n",
"expected_growths = expected_growth(sample_counts)\n",
"expected_growths_per_minute_second_max = expected_growths / minutes_second_max\n",
"\n",
"max_expected_growth_rate = expected_growths_per_minute_second_max.argmax()\n",
"period_of_second_max = minutes_second_max[max_expected_growth_rate]\n",
"growth_rate_of_second_max = expected_growths_per_minute_second_max[max_expected_growth_rate]\n",
"\n",
"print(f\"Period of second local maximum: {period_of_second_max:0.2f} min\")\n",
"print(f\"Growth rate at second local maximum: {growth_rate_of_second_max * 60:0.2f} sugar cane per hour\")"
]
},
{
"cell_type": "markdown",
"id": "e09183fe",
"metadata": {},
"source": [
"# Conclusion"
]
},
{
"cell_type": "markdown",
"id": "e0ada0ff",
"metadata": {},
"source": [
"The optimal harvest period for sugar cane, outside of impractically frequent harvests, is about 41 minutes. The next best period is about 21 minutes. The growth rate vs harvest period is plotted below."
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "5e5a32f8",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Maximum growth per hour (harvest every tick): 3.30\n",
"\n",
"Period of first local maximum: 20.51 min\n",
"Growth rate at first local maximum: 2.57 sugar cane per hour per plant\n",
"\n",
"Period of second local maximum: 41.04 min\n",
"Growth rate at second local maximum: 2.59 sugar cane per hour per plant\n"
]
}
],
"source": [
"plt.plot(minutes, expected_growths_per_minute * 60)\n",
"plt.xlabel(\"Harvest period in minutes\")\n",
"plt.ylabel(\"Expected growth per hour\")\n",
"plt.title(\"Growth rate of sugar cane v.s. harvest period\")\n",
"plt.ylim(0, 3.5)\n",
"plt.show()\n",
"\n",
"print(f\"Maximum growth per hour (harvest every tick): {maximum_growth_per_hour:0.2f}\")\n",
"print()\n",
"print(f\"Period of first local maximum: {period_of_first_max:0.2f} min\")\n",
"print(f\"Growth rate at first local maximum: {growth_rate_of_first_max * 60:0.2f} sugar cane per hour per plant\")\n",
"print()\n",
"print(f\"Period of second local maximum: {period_of_second_max:0.2f} min\")\n",
"print(f\"Growth rate at second local maximum: {growth_rate_of_second_max * 60:0.2f} sugar cane per hour per plant\")"
]
},
{
"cell_type": "markdown",
"id": "aa397a2c",
"metadata": {},
"source": [
"<p>\n",
" <a rel=\"license\"\n",
" href=\"http://creativecommons.org/publicdomain/zero/1.0/\">\n",
" <img src=\"https://licensebuttons.net/p/zero/1.0/80x15.png\" style=\"border-style: none;\" alt=\"CC0\" />\n",
" </a>\n",
" <br />\n",
" To the extent possible under law,\n",
" <a rel=\"dct:publisher\"\n",
" href=\"https://gist.github.com/GrantMoyer\">\n",
" <span property=\"dct:title\">Grant Moyer</span></a>\n",
" has waived all copyright and related or neighboring rights to\n",
" <span property=\"dct:title\"> Sugar Cane Yield v.s. Harvest Period</span>.\n",
"This work is published from:\n",
"<span property=\"vcard:Country\" datatype=\"dct:ISO3166\"\n",
" content=\"US\" about=\"https://gist.github.com/GrantMoyer\">\n",
" United States</span>.\n",
"</p>"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.4"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment