Add files via upload

This commit is contained in:
Peter Norvig authored and GitHub committed 2024-04-08 17:28:33 -07:00
1 parent 89e7b1f15d
commit 1f4eca2974
1 file changed
+152 -212
+152 -212
View File
@@ -104,8 +104,9 @@
"source": [
"def do(n, h=1, colors='RB') -> dict: \n",
" \"\"\"A dict of {(w, h): mean-cluster-size} for grids with width w from 1 to n, and with height h.\"\"\"\n",
" return {(w, h): mean(map(mean_cluster_size, grids(w, h, colors)))\n",
" for w in range(1, n + 1)}"
" for w in range(1, n + 1):\n",
" μ = mean(map(mean_cluster_size, grids(w, h, colors)))\n",
" print(f'{w:2} × {h} grids: {μ:6.4f} mean cluster size')"
]
},
{
@@ -121,44 +122,32 @@
{
"cell_type": "code",
"execution_count": 3,
"id": "ee733740-c0b2-490b-9541-1b07e37a6056",
"id": "e004289f-0c81-46ab-8900-9312a0aa6f7c",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 1.29 s, sys: 43 ms, total: 1.33 s\n",
"Wall time: 1.34 s\n"
" 1 × 1 grids: 1.0000 mean cluster size\n",
" 2 × 1 grids: 1.5000 mean cluster size\n",
" 3 × 1 grids: 1.7500 mean cluster size\n",
" 4 × 1 grids: 1.8750 mean cluster size\n",
" 5 × 1 grids: 1.9375 mean cluster size\n",
" 6 × 1 grids: 1.9688 mean cluster size\n",
" 7 × 1 grids: 1.9844 mean cluster size\n",
" 8 × 1 grids: 1.9922 mean cluster size\n",
" 9 × 1 grids: 1.9961 mean cluster size\n",
"10 × 1 grids: 1.9980 mean cluster size\n",
"11 × 1 grids: 1.9990 mean cluster size\n",
"12 × 1 grids: 1.9995 mean cluster size\n",
"13 × 1 grids: 1.9998 mean cluster size\n",
"14 × 1 grids: 1.9999 mean cluster size\n"
]
},
{
"data": {
"text/plain": [
"{(1, 1): 1.0,\n",
" (2, 1): 1.5,\n",
" (3, 1): 1.75,\n",
" (4, 1): 1.875,\n",
" (5, 1): 1.9375,\n",
" (6, 1): 1.96875,\n",
" (7, 1): 1.984375,\n",
" (8, 1): 1.9921875,\n",
" (9, 1): 1.99609375,\n",
" (10, 1): 1.998046875,\n",
" (11, 1): 1.9990234375,\n",
" (12, 1): 1.99951171875,\n",
" (13, 1): 1.999755859375,\n",
" (14, 1): 1.9998779296875,\n",
" (15, 1): 1.99993896484375}"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%time do(15)"
"do(14)"
]
},
{
@@ -187,31 +176,20 @@
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 8.12 s, sys: 269 ms, total: 8.39 s\n",
"Wall time: 8.71 s\n"
" 1 × 2 grids: 1.5000 mean cluster size\n",
" 2 × 2 grids: 2.1250 mean cluster size\n",
" 3 × 2 grids: 2.4688 mean cluster size\n",
" 4 × 2 grids: 2.6682 mean cluster size\n",
" 5 × 2 grids: 2.7920 mean cluster size\n",
" 6 × 2 grids: 2.8737 mean cluster size\n",
" 7 × 2 grids: 2.9305 mean cluster size\n",
" 8 × 2 grids: 2.9717 mean cluster size\n",
" 9 × 2 grids: 3.0027 mean cluster size\n"
]
},
{
"data": {
"text/plain": [
"{(1, 2): 1.5,\n",
" (2, 2): 2.125,\n",
" (3, 2): 2.46875,\n",
" (4, 2): 2.6682291666666664,\n",
" (5, 2): 2.7920386904761907,\n",
" (6, 2): 2.873721168154762,\n",
" (7, 2): 2.9304973563762626,\n",
" (8, 2): 2.971709969311288,\n",
" (9, 2): 3.0027141140414764}"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%time do(9, 2)"
"do(9, 2)"
]
},
{
@@ -238,28 +216,17 @@
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 6.52 s, sys: 170 ms, total: 6.69 s\n",
"Wall time: 6.72 s\n"
" 1 × 3 grids: 1.7500 mean cluster size\n",
" 2 × 3 grids: 2.4688 mean cluster size\n",
" 3 × 3 grids: 2.8986 mean cluster size\n",
" 4 × 3 grids: 3.1591 mean cluster size\n",
" 5 × 3 grids: 3.3266 mean cluster size\n",
" 6 × 3 grids: 3.4408 mean cluster size\n"
]
},
{
"data": {
"text/plain": [
"{(1, 3): 1.75,\n",
" (2, 3): 2.46875,\n",
" (3, 3): 2.8986049107142855,\n",
" (4, 3): 3.1591145833333334,\n",
" (5, 3): 3.326567058836346,\n",
" (6, 3): 3.4407984463961334}"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%time do(6, 3)"
"do(6, 3)"
]
},
{
@@ -272,27 +239,16 @@
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 27.9 s, sys: 952 ms, total: 28.9 s\n",
"Wall time: 29.1 s\n"
" 1 × 4 grids: 1.8750 mean cluster size\n",
" 2 × 4 grids: 2.6682 mean cluster size\n",
" 3 × 4 grids: 3.1591 mean cluster size\n",
" 4 × 4 grids: 3.4616 mean cluster size\n",
" 5 × 4 grids: 3.6608 mean cluster size\n"
]
},
{
"data": {
"text/plain": [
"{(1, 4): 1.875,\n",
" (2, 4): 2.6682291666666664,\n",
" (3, 4): 3.1591145833333334,\n",
" (4, 4): 3.461628834083668,\n",
" (5, 4): 3.6608226758600444}"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%time do(5, 4)"
"do(5, 4)"
]
},
{
@@ -315,34 +271,21 @@
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 13.1 s, sys: 510 ms, total: 13.6 s\n",
"Wall time: 13.7 s\n"
" 1 × 1 grids: 1.0000 mean cluster size\n",
" 2 × 1 grids: 1.3333 mean cluster size\n",
" 3 × 1 grids: 1.4444 mean cluster size\n",
" 4 × 1 grids: 1.4815 mean cluster size\n",
" 5 × 1 grids: 1.4938 mean cluster size\n",
" 6 × 1 grids: 1.4979 mean cluster size\n",
" 7 × 1 grids: 1.4993 mean cluster size\n",
" 8 × 1 grids: 1.4998 mean cluster size\n",
" 9 × 1 grids: 1.4999 mean cluster size\n",
"10 × 1 grids: 1.5000 mean cluster size\n"
]
},
{
"data": {
"text/plain": [
"{(1, 1): 1.0,\n",
" (2, 1): 1.3333333333333333,\n",
" (3, 1): 1.4444444444444444,\n",
" (4, 1): 1.4814814814814814,\n",
" (5, 1): 1.4938271604938271,\n",
" (6, 1): 1.4979423868312758,\n",
" (7, 1): 1.4993141289437586,\n",
" (8, 1): 1.4997713763145861,\n",
" (9, 1): 1.499923792104862,\n",
" (10, 1): 1.4999745973682874,\n",
" (11, 1): 1.4999915324560957,\n",
" (12, 1): 1.4999971774853653}"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%time do(12, 1, 'RGB')"
"do(10, 1, 'RGB')"
]
},
{
@@ -367,28 +310,17 @@
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 10.5 s, sys: 412 ms, total: 11 s\n",
"Wall time: 11.3 s\n"
" 1 × 2 grids: 1.3333 mean cluster size\n",
" 2 × 2 grids: 1.6543 mean cluster size\n",
" 3 × 2 grids: 1.7737 mean cluster size\n",
" 4 × 2 grids: 1.8261 mean cluster size\n",
" 5 × 2 grids: 1.8535 mean cluster size\n",
" 6 × 2 grids: 1.8698 mean cluster size\n"
]
},
{
"data": {
"text/plain": [
"{(1, 2): 1.3333333333333333,\n",
" (2, 2): 1.654320987654321,\n",
" (3, 2): 1.7736625514403292,\n",
" (4, 2): 1.8261240664532845,\n",
" (5, 2): 1.8535078615096905,\n",
" (6, 2): 1.8697928838761029}"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%time do(6, 2, 'RGB')"
"do(6, 2, 'RGB')"
]
},
{
@@ -396,7 +328,7 @@
"id": "3c18f723-447f-4cd6-ba27-59db37e87659",
"metadata": {},
"source": [
"By the same reasoning as we had last time, this should converge to 3/2 + 3/2 × 1/3 = 2. "
"By the same reasoning as we had last time, this should converge to 3/2 + 3/2 × 1/3 = 2. (But it would take a lot of computation time to consider the larger grids that would be needed to get closer to 2.)"
]
},
{
@@ -446,7 +378,7 @@
{
"data": {
"text/plain": [
"7.58150113722517"
"7.037297677691766"
]
},
"execution_count": 10,
@@ -491,10 +423,10 @@
{
"data": {
"text/plain": [
"{'mean': 7.246114781372947,\n",
" 'max': 7.716049382716049,\n",
" 'min': 6.830601092896175,\n",
" 'stdev': 0.181119344027548,\n",
"{'mean': 7.239472697041692,\n",
" 'max': 7.9239302694136295,\n",
" 'min': 6.6711140760507,\n",
" 'stdev': 0.19030622926154506,\n",
" 'N': 200}"
]
},
@@ -504,7 +436,7 @@
},
{
"data": {
"image/png": "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 truncated
"image/png": "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 truncated
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
@@ -536,10 +468,10 @@
{
"data": {
"text/plain": [
"{'mean': 7.402852321356604,\n",
" 'max': 7.635044855888529,\n",
" 'min': 7.126313914127917,\n",
" 'stdev': 0.10047800378358163,\n",
"{'mean': 7.4134560772843425,\n",
" 'max': 7.651109410864575,\n",
" 'min': 7.116171499733143,\n",
" 'stdev': 0.10453350361308941,\n",
" 'N': 200}"
]
},
@@ -549,7 +481,7 @@
},
{
"data": {
"image/png": "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 truncated
"image/png": "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 truncated
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
@@ -571,10 +503,10 @@
{
"data": {
"text/plain": [
"{'mean': 7.469780220918766,\n",
" 'max': 7.719358435543357,\n",
" 'min': 7.246960302761897,\n",
" 'stdev': 0.06989052018543407,\n",
"{'mean': 7.47612464655258,\n",
" 'max': 7.681147051292993,\n",
" 'min': 7.279786459597185,\n",
" 'stdev': 0.07889928048753433,\n",
" 'N': 200}"
]
},
@@ -584,7 +516,7 @@
},
{
"data": {
"image/png": "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 truncated
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAiwAAAGdCAYAAAAxCSikAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAjsUlEQVR4nO3deXBUVfrG8adDoIMUCQNCFggJMuwykQIkgGwyBMMyjoKgjoDixoiOmqIwES1wfqWJDkoKQShmgMiggFbYZsIoUEIiixRI4lasGkiEBEpG0oAStvP7w6LHJmtDNzndfD9Vt4p77zk37+tRfOrkJu0wxhgBAABYLKSuCwAAAKgJgQUAAFiPwAIAAKxHYAEAANYjsAAAAOsRWAAAgPUILAAAwHoEFgAAYL3Qui7AVy5duqSjR4+qcePGcjgcdV0OAACoBWOMTp06pZiYGIWEVL2PEjSB5ejRo4qNja3rMgAAwFUoLi5Wq1atqrwfNIGlcePGkn5pODw8vI6rAQAAteFyuRQbG+v+/3hVgiawXP42UHh4OIEFAIAAU9PrHLx0CwAArEdgAQAA1iOwAAAA6xFYAACA9QgsAADAegQWAABgPQILAACwHoEFAABYj8ACAACsR2ABAADWI7AAAADrEVgAAID1CCwAAMB6BBYAAGC90LouAEDdiE/N8Wr8oYzhfqoEAGrGDgsAALAegQUAAFiPwAIAAKxHYAEAANYjsAAAAOsRWAAAgPUILAAAwHoEFgAAYD0CCwAAsB6BBQAAWI/AAgAArEdgAQAA1iOwAAAA6xFYAACA9QgsAADAegQWAABgPQILAACwHoEFAABYj8ACAACsR2ABAADWI7AAAADrEVgAAID1CCwAAMB6XgeWvLw8jRw5UjExMXI4HFq9erXHfYfDUenxt7/9rcpnZmVlVTrn7NmzXjcEAACCj9eB5cyZM0pISNCcOXMqvV9SUuJxLFq0SA6HQ6NGjar2ueHh4RXmhoWFeVseAAAIQqHeTkhOTlZycnKV96OiojzO16xZo0GDBumWW26p9rkOh6PCXAAAAMnP77AcO3ZMOTk5evTRR2sce/r0acXFxalVq1YaMWKE8vPzqx1fXl4ul8vlcQAAgODk18Dy7rvvqnHjxrr33nurHdexY0dlZWVp7dq1WrZsmcLCwtS3b18dOHCgyjnp6emKiIhwH7Gxsb4uHwAAWMKvgWXRokX605/+VOO7KImJiXrooYeUkJCgfv366YMPPlD79u319ttvVzknLS1NZWVl7qO4uNjX5QMAAEt4/Q5LbX366afat2+fVqxY4fXckJAQ9ezZs9odFqfTKafTeS0lAgCAAOG3HZaFCxeqe/fuSkhI8HquMUYFBQWKjo72Q2UAACDQeL3Dcvr0aR08eNB9XlhYqIKCAjVt2lStW7eWJLlcLn344Yd68803K33G+PHj1bJlS6Wnp0uSXnnlFSUmJqpdu3ZyuVyaPXu2CgoKNHfu3KvpCQAABBmvA8uuXbs0aNAg93lKSookacKECcrKypIkLV++XMYYPfDAA5U+o6ioSCEh/9vcOXnypJ544gmVlpYqIiJC3bp1U15enm6//XZvywMAAEHIYYwxdV2EL7hcLkVERKisrEzh4eF1XQ5gvfjUHK/GH8oY7qdKANzIavv/bz5LCAAAWI/AAgAArEdgAQAA1iOwAAAA6xFYAACA9QgsAADAegQWAABgPQILAACwHoEFAABYj8ACAACsR2ABAADWI7AAAADrEVgAAID1CCwAAMB6BBYAAGA9AgsAALAegQUAAFiPwAIAAKxHYAEAANYjsAAAAOsRWAAAgPVC67oAAEDV4lNzvBp/KGO4nyoB6hY7LAAAwHoEFgAAYD0CCwAAsB6BBQAAWI/AAgAArEdgAQAA1iOwAAAA6xFYAACA9QgsAADAegQWAABgPQILAACwHoEFAABYj8ACAACs53VgycvL08iRIxUTEyOHw6HVq1d73H/44YflcDg8jsTExBqfm52drc6dO8vpdKpz585atWqVt6UBAIAg5XVgOXPmjBISEjRnzpwqx9x1110qKSlxH+vWrav2mdu3b9fYsWM1btw4ffHFFxo3bpzGjBmjHTt2eFseAAAIQqHeTkhOTlZycnK1Y5xOp6Kiomr9zMzMTA0ZMkRpaWmSpLS0NOXm5iozM1PLli3ztkQAABBk/PIOy+bNm9WiRQu1b99ejz/+uI4fP17t+O3btyspKcnj2tChQ7Vt27Yq55SXl8vlcnkcAAAgOPk8sCQnJ+u9997TJ598ojfffFM7d+7UnXfeqfLy8irnlJaWKjIy0uNaZGSkSktLq5yTnp6uiIgI9xEbG+uzHgAAgF28/pZQTcaOHev+86233qoePXooLi5OOTk5uvfee6uc53A4PM6NMRWu/VpaWppSUlLc5y6Xi9ACAECQ8nlguVJ0dLTi4uJ04MCBKsdERUVV2E05fvx4hV2XX3M6nXI6nT6rEwAA2Mvvv4flxIkTKi4uVnR0dJVjevfurQ0bNnhcW79+vfr06ePv8gAAQADweofl9OnTOnjwoPu8sLBQBQUFatq0qZo2baoZM2Zo1KhRio6O1qFDh/Tiiy/q5ptv1j333OOeM378eLVs2VLp6emSpGeffVb9+/fX66+/rrvvvltr1qzRxo0btWXLFh+0CAAAAp3XgWXXrl0aNGiQ+/zyeyQTJkzQvHnz9NVXX2nJkiU6efKkoqOjNWjQIK1YsUKNGzd2zykqKlJIyP82d/r06aPly5frpZde0ssvv6y2bdtqxYoV6tWr17X0BgAAgoTXgWXgwIEyxlR5/+OPP67xGZs3b65wbfTo0Ro9erS35QAAgBsAnyUEAACsR2ABAADWI7AAAADrEVgAAID1CCwAAMB6BBYAAGA9AgsAALAegQUAAFiPwAIAAKxHYAEAANYjsAAAAOsRWAAAgPW8/vBDALgW8ak5Xo0/lDHcT5UACCTssAAAAOsRWAAAgPUILAAAwHoEFgAAYD0CCwAAsB6BBQAAWI/AAgAArEdgAQAA1iOwAAAA6xFYAACA9QgsAADAegQWAABgPQILAACwHoEFAABYj8ACAACsR2ABAADWI7AAAADrhdZ1AQCuXnxqjlfjD2UM91MlAOBf7LAAAADrEVgAAID1CCwAAMB6BBYAAGA9AgsAALCe14ElLy9PI0eOVExMjBwOh1avXu2+d/78eb3wwgvq2rWrGjVqpJiYGI0fP15Hjx6t9plZWVlyOBwVjrNnz3rdEAAACD5eB5YzZ84oISFBc+bMqXDvp59+0u7du/Xyyy9r9+7dWrlypfbv368//OEPNT43PDxcJSUlHkdYWJi35QEAgCDk9e9hSU5OVnJycqX3IiIitGHDBo9rb7/9tm6//XYVFRWpdevWVT7X4XAoKirK23IAAMANwO/vsJSVlcnhcKhJkybVjjt9+rTi4uLUqlUrjRgxQvn5+dWOLy8vl8vl8jgAAEBw8mtgOXv2rFJTU/Xggw8qPDy8ynEdO3ZUVlaW1q5dq2XLliksLEx9+/bVgQMHqpyTnp6uiIgI9xEbG+uPFgAAgAX8FljOnz+v+++/X5cuXdI777xT7djExEQ99NBDSkhIUL9+/fTBBx+offv2evvtt6uck5aWprKyMvdRXFzs6xYAAIAl/PJZQufPn9eYMWNUWFioTz75pNrdlcqEhISoZ8+e1e6wOJ1OOZ3Oay0VAAAEAJ/vsFwOKwcOHNDGjRvVrFkzr59hjFFBQYGio6N9XR4AAAhAXu+wnD59WgcPHnSfFxYWqqCgQE2bNlVMTIxGjx6t3bt369///rcuXryo0tJSSVLTpk3VoEEDSdL48ePVsmVLpaenS5JeeeUVJSYmql27dnK5XJo9e7YKCgo0d+5cX/QIAAACnNeBZdeuXRo0aJD7PCUlRZI0YcIEzZgxQ2vXrpUk3XbbbR7zNm3apIEDB0qSioqKFBLyv82dkydP6oknnlBpaakiIiLUrVs35eXl6fbbb/e2PAAAEIS8DiwDBw6UMabK+9Xdu2zz5s0e57NmzdKsWbO8LQUAANwg+CwhAABgPQILAACwnl9+rBm4kcSn5ng951DGcD9Ugup4u06/XiPWGKh77LAAAADrEVgAAID1CCwAAMB6BBYAAGA9AgsAALAegQUAAFiPwAIAAKxHYAEAANYjsAAAAOsRWAAAgPUILAAAwHoEFgAAYD0CCwAAsB6BBQAAWI/AAgAArEdgAQAA1iOwAAAA64XWdQHAjS4+Ncer8YcyhvupEgCwFzssAADAegQWAABgPQILAACwHoEFAABYj8ACAACsR2ABAADWI7AAAADrEVgAAID1CCwAAMB6BBYAAGA9AgsAALAegQUAAFiPwAIAAKxHYAEAANbzOrDk5eVp5MiRiomJkcPh0OrVqz3uG2M0Y8YMxcTEqGHDhho4cKC++eabGp+bnZ2tzp07y+l0qnPnzlq1apW3pQEAgCDldWA5c+aMEhISNGfOnErvv/HGG3rrrbc0Z84c7dy5U1FRURoyZIhOnTpV5TO3b9+usWPHaty4cfriiy80btw4jRkzRjt27PC2PAAAEIRCvZ2QnJys5OTkSu8ZY5SZmalp06bp3nvvlSS9++67ioyM1Pvvv68nn3yy0nmZmZkaMmSI0tLSJElpaWnKzc1VZmamli1b5m2JAAAgyPj0HZbCwkKVlpYqKSnJfc3pdGrAgAHatm1blfO2b9/uMUeShg4dWu2c8vJyuVwujwMAAAQnnwaW0tJSSVJkZKTH9cjISPe9quZ5Oyc9PV0RERHuIzY29hoqBwAANvPLTwk5HA6Pc2NMhWvXOictLU1lZWXuo7i4+OoLBgAAVvP6HZbqREVFSfplxyQ6Otp9/fjx4xV2UK6cd+VuSk1znE6nnE7nNVYMAAACgU93WNq0aaOoqCht2LDBfe3cuXPKzc1Vnz59qpzXu3dvjzmStH79+mrnAACAG4fXOyyLine truncated
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
@@ -602,7 +534,7 @@
"id": "6d20f32a-8c7a-4456-aa41-d2989e33fd57",
"metadata": {},
"source": [
"I think that what's happening is that the clusters that are near the edge of the grid get arbitrarily cut off, and since the edge is a smaller percentage of the larger grid, the larger grid has a larger mean cluster size, one that is a better representative of what would happen on an infinite grid. But I can't say what the mean converges to."
"I think that what's happening is that the clusters that are near the edge of the grid get arbitrarily cut off, and since the edge is a smaller percentage of the larger grid, the larger grid has a larger mean cluster size, one that is a better representative of what would happen on an infinite grid. But I can't say exactly what the mean converges to."
]
},
{
@@ -612,7 +544,7 @@
"source": [
"# My First Random Cluster\n",
"\n",
"The great thing about an *n* × 1 grid is that the clusters can't interfere with each other. Going left-to-right, once one cluster ends, the next one starts, and there's no looping back. But in an arbitrary 2D array there is looping back. So I want to get a feel for what the \"first\" cluster on an infinite grid looks like: start by placing the first color at the origin square, then recursively place random colors in neighboring squares, extending the cluster, but stop when the cluster is completely surrounded by squares of the second color. "
"The great thing about an *n* × 1 grid is that the clusters can't interfere with each other. Going left-to-right, once one cluster ends, the next one starts, and there's no looping back. But in an arbitrary 2D array there is looping back. So I want to get a feel for what the \"first\" cluster on an infinite grid looks like: start by placing a color at the origin square, then recursively place random colors in neighboring squares, extending the cluster, but stop when the cluster is completely surrounded by squares of the other color. "
]
},
{
@@ -622,16 +554,15 @@
"metadata": {},
"outputs": [],
"source": [
"def random_cluster(colors='@.') -> Grid:\n",
" \"\"\"Create just enough of a grid to cover a single random cluster of the first color.\"\"\"\n",
" c = colors[0]\n",
" cluster = {(0, 0): c}\n",
" Q = neighbors((0, 0))\n",
"def random_cluster(colors='@.', start=(0, 0)) -> Grid:\n",
" \"\"\"Create just enough of a grid to create a single random cluster.\"\"\"\n",
" cluster = {}\n",
" Q = [start] # A queue of the frontier squares of the cluster\n",
" while Q:\n",
" sq = Q.pop()\n",
" if sq not in cluster:\n",
" cluster[sq] = random.choice(colors)\n",
" if cluster[sq] == c:\n",
" if cluster[sq] == cluster[start]:\n",
" Q.extend(neighbors(sq))\n",
" return cluster"
]
@@ -651,15 +582,17 @@
"metadata": {},
"outputs": [],
"source": [
"def show(cluster: Grid, color='@') -> int:\n",
"def show(cluster: Grid) -> int:\n",
" \"\"\"Print a representation of the grid and return the size of the one cluster.\"\"\"\n",
" xs = sorted({x for (x, y) in cluster})\n",
" ys = sorted({y for (x, y) in cluster})\n",
" for y in ys:\n",
" print(*[cluster.get((x, y), ' ') for x in xs])\n",
" return cluster_size(cluster, color)\n",
" return cluster_size(cluster)\n",
"\n",
"def cluster_size(cluster, color='@') -> int: return Counter(cluster.values())[color]"
"def cluster_size(cluster) -> int: \n",
" color = cluster[0, 0]\n",
" return Counter(cluster.values())[color]"
]
},
{
@@ -672,12 +605,7 @@
"name": "stdout",
"output_type": "stream",
"text": [
" . \n",
". @ . \n",
". @ @ . . \n",
" . @ @ @ .\n",
" . @ . . \n",
" . @ @ . \n",
" . . \n",
". @ @ .\n",
". @ . \n",
" . \n"
@@ -686,7 +614,7 @@
{
"data": {
"text/plain": [
"12"
"3"
]
},
"execution_count": 17,
@@ -695,6 +623,7 @@
}
],
"source": [
"random.seed(37)\n",
"show(random_cluster())"
]
},
@@ -708,30 +637,45 @@
"name": "stdout",
"output_type": "stream",
"text": [
" . . . . \n",
" . @ @ . . @ @ . \n",
". @ @ @ @ @ @ @ @ . \n",
" . @ @ . . @ . @ @ . \n",
" . \n",
" . @ . \n",
" . @ @ . \n",
" . . @ . \n",
" . @ . . @ . \n",
" . @ @ @ @ @ . \n",
" . . @ @ . @ . @ .\n",
" . . @ . @ @ @ @ @ @ @ .\n",
" . @ . @ @ @ @ @ @ . . . \n",
" . @ @ @ @ . . @ . \n",
" . . @ . @ . @ . \n",
" . . @ . . . @ @ @ @ . \n",
" . . @ . . @ @ @ @ @ . . . \n",
" . @ @ @ @ . . @ @ . @ @ @ . \n",
" . @ @ @ . . . @ @ . @ @ . . \n",
" . . @ @ @ @ @ @ . @ . @ . @ @ @ @ . \n",
" . @ @ @ . . @ . @ @ @ @ . @ @ . . . \n",
" . @ . @ . . . @ . @ @ @ @ @ . \n",
" . . @ . . @ @ @ . . . . . \n",
" . @ @ . @ @ . @ . \n",
" . @ . @ @ @ . . \n",
" . @ @ @ @ @ @ @ . \n",
" . @ @ @ . @ @ @ . \n",
" . . . . . @ @ @ . @ @ . \n",
" . @ @ @ . . @ @ @ @ @ @ . @ . \n",
" . @ @ @ . @ @ . . @ @ . . \n",
" . @ @ @ @ @ @ . @ . \n",
" . @ @ . . . . @ @ @ . \n",
" . . . @ . . @ . \n",
" . @ . . @ @ @ . @ . \n",
" . @ . . @ @ . . \n",
" . @ @ @ . @ @ . \n",
" . @ @ @ @ . @ . \n",
" . @ @ @ . @ . \n",
" . @ @ . @ @ . \n",
" . @ @ @ @ . \n",
" . @ . @ . \n",
" . @ @ . . \n",
" . @ @ @ . @ .\n",
" . . @ @ @ .\n",
" . @ . . \n",
" . \n"
". @ @ . @ @ . . \n",
" . @ @ @ . \n",
" . @ @ @ . \n",
" . . . \n"
]
},
{
"data": {
"text/plain": [
"61"
"167"
]
},
"execution_count": 18,
@@ -753,29 +697,18 @@
"name": "stdout",
"output_type": "stream",
"text": [
" . \n",
" . @ . . . . \n",
" . @ @ @ @ @ . \n",
" . . @ @ . @ @ @ . \n",
" . . @ @ @ @ . @ . . \n",
" . @ . . @ . @ @ @ . \n",
" . @ @ @ . . . @ @ . \n",
" . @ @ . . @ . . . . . \n",
" . . @ @ . . . . . @ . . @ @ @ @ .\n",
" . . . @ @ @ . @ @ @ @ . . @ . . . . @ . . . \n",
" . @ @ @ @ @ . . . . @ @ @ @ @ . @ @ @ @ @ . \n",
". @ @ @ @ @ @ @ @ @ @ @ . . . @ . @ . @ @ . \n",
" . @ @ @ . @ @ @ . @ . . @ @ @ @ @ . . \n",
" . . @ . @ . . . . @ @ @ @ @ @ . \n",
" . . . @ @ @ . . . . \n",
" . . \n",
". @ @ . . \n",
" . . \n"
" . @ @ @ .\n",
" . . @ .\n",
" . @ .\n",
" . \n"
]
},
{
"data": {
"text/plain": [
"100"
"7"
]
},
"execution_count": 19,
@@ -792,7 +725,7 @@
"id": "faf079b0-8534-4d92-aa8e-acd035dc5420",
"metadata": {},
"source": [
"We can see that there is a lof of variation in size and shape of the first clusters. We can also see that the shape will constrain other clusters: there are some small clusters of the second color that are trapped inside the cluster of the first color. Below I sample 10,000 first clusters and report on their sizes:"
"We can see that there is a lot of variation in size and shape of the first clusters. We can also see that the shape will constrain other clusters: there are some small clusters of the second color that are trapped inside the cluster of the first color. Below I sample 10,000 first clusters and report on their sizes:"
]
},
{
@@ -809,18 +742,12 @@
"cell_type": "code",
"execution_count": 21,
"id": "df7f6ae0-32aa-4002-8056-9de0dc2da07a",
"metadata": {
"collapsed": true,
"jupyter": {
"outputs_hidden": true
},
"scrolled": true
},
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'mean': 59.3772, 'max': 703, 'min': 1, 'stdev': 75.3564687329362, 'N': 10000}"
"{'mean': 59.6728, 'max': 917, 'min': 1, 'stdev': 75.3054688022268, 'N': 10000}"
]
},
"execution_count": 21,
@@ -829,7 +756,7 @@
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjEAAAGdCAYAAADjWSL8AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAhkElEQVR4nO3df2xV9f3H8deVtheo7RkF2+sdVap2CCswV1wp8ztQoEConTEZbHUdRgSRnw0QfsgfsCW2yDJQ08kQCajguj8UxyZWSsQqgwIWbiyITGOVIr2Uabkt2LVYPt8/Fk68FNEWsP3cPh/JSew579uez0kjz5zeHx5jjBEAAIBlruvoEwAAAGgPIgYAAFiJiAEAAFYiYgAAgJWIGAAAYCUiBgAAWImIAQAAViJiAACAlaI6+gSulfPnz+vEiROKi4uTx+Pp6NMBAADfgTFGDQ0N8vv9uu66y99ridiIOXHihJKTkzv6NAAAQDtUV1erb9++l52J2IiJi4uT9L+LEB8f38FnAwAAvov6+nolJye7/45fTsRGzIU/IcXHxxMxAABY5rs8FYQn9gIAACsRMQAAwEpEDAAAsBIRAwAArETEAAAAKxExAADASkQMAACwEhEDAACsRMQAAAArETEAAMBKRAwAALASEQMAAKxExAAAACsRMQAAwEpRHX0Ctuq3+LU2zX+yYsI1OhMAALom7sQAAAArETEAAMBKRAwAALASEQMAAKxExAAAACsRMQAAwEpEDAAAsBIRAwAArETEAAAAKxExAADASkQMAACwEhEDAACsRMQAAAArETEAAMBKRAwAALASEQMAAKxExAAAACsRMQAAwEpEDAAAsBIRAwAArETEAAAAKxExAADASkQMAACw0hVFTGFhoTwej/Lz8919xhgtX75cfr9fPXr00MiRI3X48OGwxzU1NWn27Nnq06ePYmNjlZOTo+PHj4fN1NXVKS8vT47jyHEc5eXl6fTp01dyugAAIIK0O2L279+vZ599VoMHDw7bv3LlSq1atUpFRUXav3+/fD6fxowZo4aGBncmPz9fW7ZsUXFxsXbt2qUzZ84oOztbLS0t7kxubq4CgYBKSkpUUlKiQCCgvLy89p4uAACIMO2KmDNnzuiBBx7QunXr1KtXL3e/MUZPPvmkli5dqvvvv19paWl6/vnn9eWXX+qll16SJIVCIa1fv15/+tOfNHr0aN1xxx3atGmTKisrtWPHDknSkSNHVFJSoueee06ZmZnKzMzUunXr9M9//lNHjx69CssGAAC2a1fEzJw5UxMmTNDo0aPD9ldVVSkYDCorK8vd5/V6NWLECO3evVuSVFFRoXPnzoXN+P1+paWluTN79uyR4zjKyMhwZ4YNGybHcdyZizU1Nam+vj5sAwAAkSuqrQ8oLi7WgQMHtH///lbHgsGgJCkpKSlsf1JSkj799FN3JiYmJuwOzoWZC48PBoNKTExs9f0TExPdmYsVFhbq97//fVuXAwAALNWmOzHV1dWaO3euNm3apO7du3/jnMfjCfvaGNNq38UunrnU/OW+z5IlSxQKhdyturr6sj8PAADYrU0RU1FRodraWqWnpysqKkpRUVEqKyvT008/raioKPcOzMV3S2pra91jPp9Pzc3Nqquru+zMyZMnW/38U6dOtbrLc4HX61V8fHzYBgAAIlebImbUqFGqrKxUIBBwt6FDh+qBBx5QIBDQLbfcIp/Pp9LSUvcxzc3NKisr0/DhwyVJ6enpio6ODpupqanRoUOH3JnMzEyFQiHt27fPndm7d69CoZA7AwAAurY2PScmLi5OaWlpYftiY2PVu3dvd39+fr4KCgqUmpqq1NRUFRQUqGfPnsrNzZUkOY6jKVOmaP78+erdu7cSEhK0YMECDRo0yH2i8IABAzRu3DhNnTpVa9eulSRNmzZN2dnZ6t+//xUvGgAA2K/NT+z9NgsXLlRjY6NmzJihuro6ZWRkaPv27YqLi3NnVq9eraioKE2cOFGNjY0aNWqUNm7cqG7durkzmzdv1pw5c9xXMeXk5KioqOhqny4AALCUxxhjOvokroX6+no5jqNQKHRNnh/Tb/FrbZr/ZMWEq34OAABEmrb8+81nJwEAACsRMQAAwEpEDAAAsBIRAwAArETEAAAAKxExAADASkQMAACwEhEDAACsRMQAAAArETEAAMBKRAwAALASEQMAAKxExAAAACsRMQAAwEpEDAAAsBIRAwAArETEAAAAKxExAADASkQMAACwEhEDAACsRMQAAAArETEAAMBKRAwAALASEQMAAKxExAAAACsRMQAAwEpEDAAAsBIRAwAArETEAAAAKxExAADASkQMAACwEhEDAACsRMQAAAArETEAAMBKRAwAALASEQMAAKxExAAAACsRMQAAwEpEDAAAsBIRAwAArETEAAAAKxExAADASkQMAACwEhEDAACsRMQAAAArETEAAMBKRAwAALASEQMAAKxExAAAACsRMQAAwEpEDAAAsBIRAwAArETEAAAAKxExAADASkQMAACwEhEDAACsRMQAAAArETEAAMBKRAwAALASEQMAAKxExAAAACsRMQAAwEpEDAAAsBIRAwAArETEAAAAKxExAADASkQMAACwEhEDAACsRMQAAAArETEAAMBKbYqYNWvWaPDgwYqPj1d8fLwyMzP1+uuvu8eNMVq+fLn8fr969OihkSNH6vDhw2Hfo6mpSbNnz1afPn0UGxurnJwcHT9+PGymrq5OeXl5chxHjuMoLy9Pp0+fbv8qAQBAxGlTxPTt21crVqzQu+++q3fffVf33HOPfvnLX7qhsnLlSq1atUpFRUXav3+/fD6fxowZo4aGBvd75Ofna8uWLSouLtauXbt05swZZWdnq6WlxZ3Jzc1VIBBQSUmJSkpKFAgElJeXd5WWDAAAIoHHGGOu5BskJCToj3/8ox566CH5/X7l5+dr0aJFkv531yUpKUlPPPGEHnnkEYVCId1www168cUXNWnSJEnSiRMnlJycrG3btmns2LE6cuSIBg4cqPLycmVkZEiSysvLlZmZqQ8++ED9+/f/TudVX18vx3EUCoUUHx9/JUu8pH6LX2vT/CcrJlz1cwAAINK05d/vdj8npqWlRcXFxTp79qwyMzNVVVWlYDCorKwsd8br9WrEiBHavXu3JKmiokLnzp0Lm/H7/UpLS3Nn9uzZI8dx3ICRpGHDhslxHHfmUpqamlRfXx+2AQCAyNXmiKmsrNT1118vr9er6dOna8uWLRo4cKCCwaAkKSkpKWw+KSnJPRYMBhUTE6NevXpddiYxMbHVz01MTHRnLqWwsNB9Do3jOEpOTm7r0gAAgEXaHDH9+/dXIBBQeXm5Hn30UU2ePFnvv/++e9zj8YTNG2Na7bvYxTOXmv+277NkyRKFQiF3q66u/q5LAgAAFmpzxMTExOi2227T0KFDVVhYqCFDhuipp56Sz+eTpFZ3S2pra927Mz6fT83Nzaqrq7vszMmTJ1v93FOnTrW6y/N1Xq/XfdXUhQ0AAESuK36fGGOMmpqalJKSIp/Pp9LSUvdYc3OzysrKNHz4cElSenq6oqOjw2Zqamp06NAhdyYzM1OhUEj79u1zZ/bu3atQKOTOAAAARLVl+LHHHtP48eOVnJyshoYGFRcX66233lJJSYk8Ho/y8/NVUFCg1NRUpaamqqCgQD179lRubq4kyXEcTZkyRfPnz1fv3r2VkJCgBQsWaNCgQRo9erQkacCAARo3bpymTp2qtWvXSpKmTZum7Ozs7/zKJAAAEPnaFDEnT55UXl6eampq5DiOBg8erJKSEo0ZM0aStHDhQjU2NmrGjBmqq6tTRkaGtm/frri4OPd7rF69WlFRUZo4caIaGxs1atQobdy4Ud26dXNnNm/erDlz5rivYsrJyVFRUdHVWC8AAIgQV/w+MZ0V7xMDAIB9vpf3iQEAAOhIRAwAALASEQMAAKxExAAAACsRMQAAwEpEDAAAsBIRAwAArETEAAAAKxExAADASkQMAACwEhEDAACsRMQAAAArETEAAMBKRAwAALASEQMAAKxExAAAACsRMQAAwEpEDAAAsBIRAwAArETEAAAAKxExAADASkQMAACwEhEDAACsRMQAAAArETEAAMBKRAwAALASEQMAAKxExAAAACsRMQAAwEpEDAAAsBIRAwAArETEAAAAKxExAADASkQMAACwEhEDAACsRMQAAAArETEAAMBKRAwAALASEQMAAKxExAAAACsRMQAAwEpEDAAAsBIRAwAArETEAAAAKxExAADASkQMAACwEhEDAACsRMQAAAArETEAAMBKRAwAALASEQMAAKxExAAAACsRMQAAwEpEDAAAsBIRAwAArETEAAAAKxExAADASkQMAACwEhEDAACsRMQAAAArETEAAMBKRAwAALASEQMAAKxExAAAACsRMQAAwEpEDAAAsBIRAwAArETEAAAAKxExAADASkQMAACwUpsiprCwUHfeeafi4uKUmJio++67T0ePHg2bMcZo+fLl8vv96tGjh0aOHKnDhw+HzTQ1NWn27Nnq06ePYmNjlZOTo+PHj4fN1NXVKS8vT47jyHEc5eXl6fTp0+1bJQAAiDhtipiysjLNnDlT5eXlKi0t1VdffaWsrCydPXvWnVm5cqVWrVqloqIi7d+/Xz6fT2PGjFFDQ4M7k5+fry1btqi4uFi7du3SmTNnlJ2drZaWFncmNzdXgUBAJSUlKikpUSAQUF5e3lVYMgAAiAQeY4xp74NPnTqlxMRElZWV6Re/+IWMMfL7/crPz9eiRYsk/e+uS1JSkp544gk98sgjCoVCuuGGG/Tiiy9q0qRJkqQTJ04oOTlZ27Zt09ixY3XkyBENHDhQ5eXlysjIkCSVl5crMzNTH3zwgfr37/+t51ZfXy/HcRQKhRQfH9/eJX6jfotfa9P8JysmXPVzAAAg0rTl3+8rek5MKBSSJCUkJEiSqqqqFAwGlZWLine truncated
"image/png": "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 truncated
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
@@ -853,13 +780,17 @@
{
"cell_type": "code",
"execution_count": 22,
"id": "2f1dacba-d47c-46ab-be44-b5129e317ef4",
"id": "3dcbff13-ddb1-4ba0-9650-3b6b6122f76a",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'mean': 11.6556, 'max': 32, 'min': 1, 'stdev': 9.159878236846971, 'N': 5000}"
"{'mean': 7.851026539809714,\n",
" 'max': 20,\n",
" 'min': 1,\n",
" 'stdev': 5.816812011424741,\n",
" 'N': 3994}"
]
},
"execution_count": 22,
@@ -868,7 +799,7 @@
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAigAAAGdCAYAAAA44ojeAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAdkElEQVR4nO3df3TV9X348VckEIGFlB+SS2aK6UbXH6HOBsegtnAKxDqp9nDOsNXt0FPWg0PZMnAWxjap5xgom8gmLT06j1IZxT8mm+doV+LUKGWeIcWJtMf2HFFiJSdnLkuCskTh8/3D49338sNwEbnvJI/HOZ9zms99X/K+n77bPM/7fnJTlmVZFgAACbmg1BMAADiRQAEAkiNQAIDkCBQAIDkCBQBIjkABAJIjUACA5AgUACA55aWewNk4fvx4vP7661FZWRllZWWlng4AcAayLIuenp6oqamJCy54/z2SARkor7/+etTW1pZ6GgDAWWhra4uLL774fccMyECprKyMiHdf4JgxY0o8GwDgTHR3d0dtbW3+5/j7GZCB8t7bOmPGjBEoADDAnMntGW6SBQCSI1AAgOQIFAAgOQIFAEiOQAEAkiNQAIDkCBQAIDkCBQBIjkABAJIjUACA5AgUACA5AgUASI5AAQCSI1AAgOSUl3oCKbpk5aNFjX9l3dUf0kwAYGiygwIAJEegAADJESgAQHIECgCQHIECACRHoAAAyREoAEByBAoAkByBAgAkR6AAAMkRKABAcgQKAJAcgQIAJEegAADJESgAQHIECgCQHIECACRHoAAAyREoAEByBAoAkByBAgAkR6AAAMkRKABAcgQKAJAcgQIAJEegAADJESgAQHIECgCQHIECACRHoAAAyREoAEByBAoAkByBAgAkR6AAAMkRKABAcgQKAJAcgQIAJEegAADJESgAQHIECgCQHIECACRHoAAAyREoAEByBAoAkByBAgAkR6AAAMkRKABAcgQKAJAcgQIAJEegAADJKSpQ3nnnnfjLv/zLqKuri5EjR8bHPvaxuP322+P48eP5MVmWxZo1a6KmpiZGjhwZs2fPjgMHDhT8O729vbFs2bKYMGFCjB49Oq655pp47bXXzs0rAgAGvKIC5Tvf+U58//vfj02bNsXPf/7zWL9+ffzN3/xN3H333fkx69evjw0bNsSmTZtiz549kcvlYt68edHT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RHNzc4waNSquv/76iIioqqqKxYsXx4oVK2L8+PExbty4uOWWW2Lq1Kkxd+7cc/8KAYABp6hAufzyy2PHjh2xatWquP3226Ouri42btwYN9xwQ37MrbfeGkePHo2lS5dGZ2dnTJ8+PXbu3BmVlZX5MXfddVeUl5fHwoUL4+jRozFnzpx44IEHYtiwYefulQEAA1ZRn4OSCp+DAgADz4f2OSgAAOeDQAEAkiNQAIDkCBQAIDkCBQBIjkABAJIjUACA5AgUACA5AgUASI5AAQCSI1AAgOQIFAAgOQIFAEiOQAEAkiNQAIDkCBQAIDkCBQBIjkABAJIjUACA5AgUACA5AgUASI5AAQCSI1AAgOQIFAAgOQIFAEiOQAEAkiNQAIDkCBQAIDkCBQBIjkABAJIjUACA5AgUACA5AgUASI5AAQCSI1AAgOQIFAAgOQIFAEiOQAEAkiNQAIDkCBQAIDkCBQBIjkABAJIjUACA5AgUACA5AgUASI5AAQCSI1AAgOQIFAAgOQIFAEiOQAEAkiNQAIDkCBQAIDkCBQBIjkABAJIjUACA5AgUACA5AgUASI5AAQCSI1AAgOQIFAAgOQIFAEiOQAEAkiNQAIDkCBQAIDkfKFDWrl0bZWVl0dTUlD+XZVmsWbMmampqYuTIkTF79uw4cOBAwfN6e3tj2bJlMWHChBg9enRcc8018dprr32QqQAAg8hZB8qePXvinnvuic985jMF59evXx8bNmyITZs2xZ49eyKXy8W8efOip6cnP6apqSl27NgR27dvj127dsWRI0di/vz5cezYsbN/JQDAoHFWgXLkyJG44YYb4t57742xY8fmz2dZFhs3bozVq1fHggULor6+PrZs2RJvvfVWbNu2LSIiurq64r777os777wz5s6dG5dddlls3bo19u/fH48//vi5eVUAwIB2VoFy0003xdVXXx1z584tOH/w4MFob2+PxsbG/LmKioqYNWtW7N69OyIi9u7dG2+//XbBmJqamqivr8+POVFvb290d3cXHADA4FVe7BO2b98eP/3pT2PPnj0nPdbe3h4REdXV1QXnq6ur49VXX82PGTFiRMHOy3tj3nv+idauXRvf/va3i50qADBAFbWD0tbWFn/6p38aW7dujQsvvPC048rKygq+zrLspHMner8xq1atiq6urvzR1tZWzLQBgAGmqEDZu3dvdHR0RENDQ5SXl0d5eXm0trbG3//930d5eXl+5+TEnZCOjo78Y7lcLvr6+qKzs/O0Y05UUVERY8aMKTgAgMGrqECZM2dO7N+/P55//vn8MW3atLjhhhvi+eefj4997GORy+WipaUl/5y+vr5obW2NmTNnRkREQ0NDDB8+vGDM4cOH48UXX8yLine truncated
"image/png": "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 truncated
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
@@ -878,7 +809,16 @@
}
],
"source": [
"report(sorted(sizes)[:5000])"
"smaller = [s for s in sizes if s <= 20]\n",
"report(smaller, bins=range(22))"
]
},
{
"cell_type": "markdown",
"id": "e93bc126-d2c9-415d-97cf-ee07bd36502d",
"metadata": {},
"source": [
"We see that there are over 600 clusters of size 1. That makes sense; we start with one square, and about once every 2<sup>4</sup> times all 4 neighbors will be the other color, and 10000 / 16 = 625."
]
},
{