diff --git a/ipynb/Advent-2024.ipynb b/ipynb/Advent-2024.ipynb index 90d6036..e2a202e 100644 --- a/ipynb/Advent-2024.ipynb +++ b/ipynb/Advent-2024.ipynb @@ -5,13 +5,13 @@ "id": "4f0ef1f2-0c73-4ef5-b430-48fe4ce450c0", "metadata": {}, "source": [ - "
Peter Norvig, December 2024
\n", + "
Peter Norvig
December 2024
\n", "\n", "# Advent of Code 2024\n", "\n", "I enjoy doing the [**Advent of Code**](https://adventofcode.com/) (AoC) programming puzzles, so here we go for 2024! This is the 10th year, so congratulations to puzzle creator [**Eric Wastl**](https://adventofcode.com/2024/about). Our old friend [**Gary Grady**](https://find.sciences.social/search/accounts/@garygrady@mastodon.social) is here to provide illustrations:\n", "\n", - "\"GaryJGrady\n", + "\"GaryJGrady\n", "\n", "Even before December 1st I can start by loading up my [**AdventUtils.ipynb**](AdventUtils.ipynb) notebook (same as last time except for the `current_year`):" ] @@ -631,7 +631,7 @@ { "data": { "text/plain": [ - "Puzzle 4.1: .022 seconds, answer 2401 ok" + "Puzzle 4.1: .021 seconds, answer 2401 ok" ] }, "execution_count": 39, @@ -1082,7 +1082,7 @@ { "data": { "text/plain": [ - "Puzzle 6.2: 1.967 seconds, answer 2162 ok" + "Puzzle 6.2: 1.932 seconds, answer 2162 ok" ] }, "execution_count": 63, @@ -1276,7 +1276,7 @@ { "data": { "text/plain": [ - "Puzzle 7.2: .799 seconds, answer 150077710195188 ok" + "Puzzle 7.2: .776 seconds, answer 150077710195188 ok" ] }, "execution_count": 75, @@ -1327,7 +1327,7 @@ { "data": { "text/plain": [ - "Puzzle 7.2: .595 seconds, answer 150077710195188 ok" + "Puzzle 7.2: .586 seconds, answer 150077710195188 ok" ] }, "execution_count": 78, @@ -1421,7 +1421,7 @@ { "data": { "text/plain": [ - "Puzzle 8.1: .003 seconds, answer 220 ok" + "Puzzle 8.1: .002 seconds, answer 220 ok" ] }, "execution_count": 83, @@ -1475,7 +1475,7 @@ { "data": { "text/plain": [ - "Puzzle 8.1: .003 seconds, answer 220 ok" + "Puzzle 8.1: .002 seconds, answer 220 ok" ] }, "execution_count": 86, @@ -1530,56 +1530,56 @@ "name": "stdout", "output_type": "stream", "text": [ - "..........E7...xH..s....B.C........4..W..........5\n", - ".........4O.T..H3...t..h....3.s..C.3..zo..35b.....\n", - ".e.....x..x.7cH.x....k..8....CT...z.o5............\n", + "..........E7...xH..s....B.C........z..W..........5\n", + ".........4O.5..H3...t..h....3.s..C.3..zo..35b.....\n", + ".e.....x..x.7OH.x....t..8....CT...z.o5............\n", "5...........XH...s...t.....s...5j...8z.T.3........\n", - "...........EH...ex.Tj3t.E5....3.C....E..k.K....c.w\n", - ".e0........Hh...Kb.5.t.cs......O.S..z..k3....9..Eo\n", + "...........EH...ex.Tj3t.E5....3.C....E..k.O....c.w\n", + ".30........Hh...Kb.5.t.cs......O.S..z..k3....9..Eo\n", ".......3..H..5.s..x.O..B..........9C3..zcb....o.wX\n", - ".......5.H.x.3.......st9..j...4C3j..W..3...o.G....\n", - ".5.0....H...E......x.........o...c....z.o......w..\n", - ".hH....H.c...sex.7s...kj.3.....b...E.o3..K.....w..\n", - "......H..........67.x.....cO..C3.To.5..8.C..E.K..S\n", + ".......5.O.x.3.......st9..3...8C3j..W..3...o.G....\n", + ".5.0....H...E......x.........o...c....C.o......w..\n", + ".9H....H.c...sex.7s...tj.3.....b...E.o3..K.....w..\n", + "......H..........67.x.....cO..C3.T3.5..8.C..E.w..S\n", "sW..0H....H...5s.........B6....o..j..Cb.z..c......\n", - ".s..HO.....s.HHx...c.xBt....o.......8.....eKCw..S.\n", - "..sH.k..H...s.....H..H.t.o.e.C......3..zT.......X3\n", - "T.Hs.0.....kc.......H7o..4j..H...EW..9..K.z.w..S..\n", - ".H..s....T.H.....k.o.5..H.H........j.H..E.G..0....\n", - "H....c.......1E5o.T.x.7k...HC.j.4..b..3C.z.w.HST..\n", - ".O....4......oH....x....t..T.k....HS....e08.z.....\n", - ".......s..o..........B.7x.........HkT.H0zOw..S....\n", + ".s..6O.....s.EHx...c.xBt....o.......8.....e3Cw..S.\n", + "..sH.k..O...s.....H..H.E.o.e.C......3..zT.......X3\n", + "T.Hs.0.....ke.......H7x..4j..H...EO..9..K.z.w..C..\n", + ".H..s....T.H.....k.o.5..H.H........3.H..E.G..0....\n", + "H....c.......1E5o.T.x.7x...eC.j.4..b..3C.3.0.HST..\n", + ".O....s......oH....x....t..T.k....3S....e08.z.....\n", + ".......s..o..........B.7x.........HHT.H0zOw..S....\n", "...s...os.e......H.......b.C5j.E.3C.j0.K3kHz.T31.J\n", - "..g.o..0.s.....o........tx.........0E....H..S.Hk..\n", + "..g.o..0.s.....E........tx.........0E....H..S.HX..\n", "so...s....s.....5...H....t....K.30w....3.Cz...H.J.\n", - "....Kg...o.s..........Ex.tx7X..0........wK3S.3..H.\n", - "........0...s6.........Hkx.7.0.3...5Sj.wez.....Jz.\n", - ".4.s....g....s..E...BT....wx1E..j.....Kw..S.z8....\n", + "....KS...o.s..........Ex.tx7X..0........9K3S.3..8.\n", + "........0...s6.........Hkx.7.9.3...5Sj.wez.....Jz.\n", + ".4.O....e....s..E...BT....wx1E..j.....Kw..S.z8....\n", ".E....O.....K.s..........Ct...38E.j......W..3.J...\n", - "....h...o0.g...s.8.....e.w..xb7.......wT3S8z.....j\n", - "02.8........S...s.wW.0....txTH.......wj...5.cJX..Z\n", - "..J...k.......g4.E.0K...Ct...xW......w.8S.z...3..G\n", - "...0E.e...0......0sk.......t3...H..j.K......JzT...\n", - "..........w....0.gks.....kttE.x777.ww..S...9..GG..\n", - ".....O0......0.Tw.5.sE.C..b3K......HG..j.3.JzC..85\n", - "So..2......0......ESgs.....t...x.C.w..S....GG..z..\n", + "....h...o0.g...s.8.....e.w..xb7.......wT3S8C.....j\n", + "02.8........S...s.wW.0....txT3.......wj...5.cJX..Z\n", + "..J...k.......84.E.0K...Ct...xW......w.8S.z...3..G\n", + "...0E.e...0......0sk.......E3...H..j.K......JzT...\n", + "..........w....0.gkB.....kttE.x777.w8..S...9..GG..\n", + ".....O0......0.Tw.5.sE.C..b3K......HG..j.3.JzC..35\n", + "S2..2......0......ESg9.....t...x.C.w..S....1G..z..\n", "B.w4...E.0..........8ws...3.t...1b....H...Jz...X..\n", - "....e.B0.....h.......16g.E....8.x.w.KSjWG.T..XZ...\n", - "6....0..S.4.0.k.........E3..W.........S.jJ.......z\n", + "....e.B0.....h.......1Cs.E....8.x.w.CSjWG.T..XZ...\n", + "6....0..S.1.B.k.........E3..W.........S.jH.......z\n", "...0...w.6.......WBE...b.st8....wx.7SG....3..z.C..\n", - ".0..O.W2..E....0..6..C..3.k.tt.w...x.7..J...H.....\n", - ".........T...0..S.......8..6tgB.w.xS...7....z.S...\n", + ".0..O.W2..E....0..6..C..3.s.tt.w...x.7..J...H.....\n", + ".........T...0..S.......8..6tgB.w.xS...7....z.9...\n", "..e...............0....E....st...G.K67.J.j....EH..\n", "...2W...............E8.......s.wg.Sx.b...EB..6....\n", - "........2k..jE0W....503.S.....t.....E.JS...ZX.z.BC\n", + "........28..jE0W....b03.S.....t.....E.JS...3X.z.BC\n", ".....4..k.2..2...B8...h...WjGtwE.S.gx..x..7..T...z\n", - "..oO...k..........2C.3..0.ESt...s....J....j..cg...\n", - "e.....G........8.....S.2.G.k.w..SsK..xg.x.7Jj...W.\n", - "...T....w....jGSE...3......w2..tC.s.J..1.7.......X\n", - ".........S.E8....bC..5G.....w..K.2.s..x..g..37.X.9\n", - "...Sk.E...B..2..0..2.....S....t....Js.2.Sb.j.X....\n", + "..oO...k..........2C.3..0.ESt...s....J....j..zg...\n", + "e.....G........8.....E.2.G.t.w..SsK..xg.x.7Jj...W.\n", + "...T....w....jGSE...3......02..6C.b.J..1.7.......X\n", + ".........S.E8....bC..5G.....w..K.2.s..x..G..37.X.9\n", + "...Sk.E...B..2..0..2.....S....t....Js.2.Sb.x.X....\n", ".E.......8......B..G..E....w..St.....sGxZ..2g.z...\n", - "4.O..6..G........C3E....W....2..tKJ.g.C..X....Gj2.\n" + "4.O..6..G........C3E....W....2..t0J.g.C..X....Gj2.\n" ] } ], @@ -1701,7 +1701,7 @@ { "data": { "text/plain": [ - "Puzzle 9.1: .020 seconds, answer 6332189866718 ok" + "Puzzle 9.1: .019 seconds, answer 6332189866718 ok" ] }, "execution_count": 94, @@ -1995,12 +1995,12 @@ "source": [ "def plot_topo(topo: Grid):\n", " \"\"\"Show the map with a colormap from blue to red.\"\"\"\n", - " plt.figure()\n", " scatter = plt.scatter(Xs(topo), Ys(topo), c=list(topo.values()), \n", " cmap='coolwarm', marker='s', s=12)\n", " plt.colorbar(scatter, label='Elevation')\n", " plt.axis('square')\n", " plt.axis('off')\n", + " plt.show()\n", "\n", "plot_topo(topo)" ] @@ -2177,7 +2177,7 @@ { "data": { "text/plain": [ - "Puzzle 11.2: .060 seconds, answer 232454623677743 ok" + "Puzzle 11.2: .059 seconds, answer 232454623677743 ok" ] }, "execution_count": 119, @@ -2442,7 +2442,7 @@ { "data": { "text/plain": [ - "Puzzle 12.1: .051 seconds, answer 1402544 ok" + "Puzzle 12.1: .050 seconds, answer 1402544 ok" ] }, "execution_count": 132, @@ -2464,7 +2464,7 @@ { "data": { "text/plain": [ - "Puzzle 12.2: .044 seconds, answer 862486 ok" + "Puzzle 12.2: .043 seconds, answer 862486 ok" ] }, "execution_count": 133, @@ -2944,6 +2944,7 @@ " ax.yaxis.set_inverted(True)\n", " plt.plot(*T(points), 'go')\n", " plt.title(f'{t} seconds')\n", + " plt.ion()\n", " return matplotlib.animation.FuncAnimation(fig, animate, frames=times)" ] }, @@ -3149,42 +3150,42 @@ "\n", "\n", "
\n", - " \n", + " \n", "
\n", - " \n", + " oninput=\"anim6f0cd805e6024777a7d4c6f847e74e47.set_frame(parseInt(this.value));\">\n", "
\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", "
\n", - "
\n", - " \n", - " \n", - " Once\n", + " \n", - " \n", - " Loop\n", + " \n", - " \n", + " \n", "
\n", "
\n", "
\n", @@ -3194,9 +3195,9 @@ " /* Instantiate the Animation class. */\n", " /* The IDs given should match those used in the template above. */\n", " (function() {\n", - " var img_id = \"_anim_img1e016efee37e4e37945c60fc66aa9560\";\n", - " var slider_id = \"_anim_slider1e016efee37e4e37945c60fc66aa9560\";\n", - " var loop_select_id = \"_anim_loop_select1e016efee37e4e37945c60fc66aa9560\";\n", + " var img_id = \"_anim_img6f0cd805e6024777a7d4c6f847e74e47\";\n", + " var slider_id = \"_anim_slider6f0cd805e6024777a7d4c6f847e74e47\";\n", + " var loop_select_id = \"_anim_loop_select6f0cd805e6024777a7d4c6f847e74e47\";\n", " var frames = new Array(3);\n", " \n", " frames[0] = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAoAAAAHgCAYAAAA10dzkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90\\\n", @@ -4933,14 +4934,14 @@ " /* set a timeout to make sure all the above elements are created before\n", " the object is initialized. */\n", " setTimeout(function() {\n", - " anim1e016efee37e4e37945c60fc66aa9560 = new Animation(frames, img_id, slider_id, 200.0,\n", + " anim6f0cd805e6024777a7d4c6f847e74e47 = new Animation(frames, img_id, slider_id, 200.0,\n", " loop_select_id);\n", " }, 0);\n", " })()\n", "\n" ], "text/plain": [ - "" + "" ] }, "execution_count": 160, @@ -5173,42 +5174,42 @@ "\n", "\n", "
\n", - " \n", + " \n", "
\n", - " \n", + " oninput=\"anim9f8ef744d7ae49c1bb25688c6c5b7e4a.set_frame(parseInt(this.value));\">\n", "
\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", "
\n", - "
\n", - " \n", - " \n", - " Once\n", + " \n", - " \n", - " Loop\n", + " \n", - " \n", + " \n", "
\n", "
\n", "
\n", @@ -5218,9 +5219,9 @@ " /* Instantiate the Animation class. */\n", " /* The IDs given should match those used in the template above. */\n", " (function() {\n", - " var img_id = \"_anim_img2e2d3755a0824a518eae112d3b2b646c\";\n", - " var slider_id = \"_anim_slider2e2d3755a0824a518eae112d3b2b646c\";\n", - " var loop_select_id = \"_anim_loop_select2e2d3755a0824a518eae112d3b2b646c\";\n", + " var img_id = \"_anim_img9f8ef744d7ae49c1bb25688c6c5b7e4a\";\n", + " var slider_id = \"_anim_slider9f8ef744d7ae49c1bb25688c6c5b7e4a\";\n", + " var loop_select_id = \"_anim_loop_select9f8ef744d7ae49c1bb25688c6c5b7e4a\";\n", " var frames = new Array(1);\n", " \n", " frames[0] = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAoAAAAHgCAYAAAA10dzkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90\\\n", @@ -5609,14 +5610,14 @@ " /* set a timeout to make sure all the above elements are created before\n", " the object is initialized. */\n", " setTimeout(function() {\n", - " anim2e2d3755a0824a518eae112d3b2b646c = new Animation(frames, img_id, slider_id, 200.0,\n", + " anim9f8ef744d7ae49c1bb25688c6c5b7e4a = new Animation(frames, img_id, slider_id, 200.0,\n", " loop_select_id);\n", " }, 0);\n", " })()\n", "\n" ], "text/plain": [ - "" + "" ] }, "execution_count": 163, @@ -5650,7 +5651,7 @@ { "data": { "text/plain": [ - "Puzzle 14.2: 1.874 seconds, answer 6876 ok" + "Puzzle 14.2: 1.802 seconds, answer 6876 ok" ] }, "execution_count": 165, @@ -5857,7 +5858,7 @@ { "data": { "text/plain": [ - "Puzzle 15.1: .029 seconds, answer 1563092 ok" + "Puzzle 15.1: .028 seconds, answer 1563092 ok" ] }, "execution_count": 173, @@ -5879,7 +5880,7 @@ { "data": { "text/plain": [ - "Puzzle 15.2: .042 seconds, answer 1582688 ok" + "Puzzle 15.2: .041 seconds, answer 1582688 ok" ] }, "execution_count": 174, @@ -6040,7 +6041,7 @@ { "data": { "text/plain": [ - "Puzzle 16.1: .147 seconds, answer 103512 ok" + "Puzzle 16.1: .146 seconds, answer 103512 ok" ] }, "execution_count": 182, @@ -6104,7 +6105,7 @@ { "data": { "text/plain": [ - "Puzzle 16.2: .854 seconds, answer 554 ok" + "Puzzle 16.2: .837 seconds, answer 554 ok" ] }, "execution_count": 185, @@ -6593,7 +6594,7 @@ { "data": { "text/plain": [ - "Puzzle 18.2: .032 seconds, answer 46,18 ok" + "Puzzle 18.2: .031 seconds, answer 46,18 ok" ] }, "execution_count": 209, @@ -6703,7 +6704,7 @@ { "data": { "text/plain": [ - "Puzzle 19.1: .040 seconds, answer 242 ok" + "Puzzle 19.1: .038 seconds, answer 242 ok" ] }, "execution_count": 215, @@ -6750,7 +6751,7 @@ { "data": { "text/plain": [ - "Puzzle 19.2: .183 seconds, answer 595975512785325 ok" + "Puzzle 19.2: .180 seconds, answer 595975512785325 ok" ] }, "execution_count": 218, @@ -6919,7 +6920,7 @@ { "data": { "text/plain": [ - "Puzzle 20.1: .028 seconds, answer 1343 ok" + "Puzzle 20.1: .029 seconds, answer 1343 ok" ] }, "execution_count": 228, @@ -6980,7 +6981,7 @@ { "data": { "text/plain": [ - "Puzzle 20.2: .761 seconds, answer 982891 ok" + "Puzzle 20.2: .737 seconds, answer 982891 ok" ] }, "execution_count": 231, @@ -7445,7 +7446,7 @@ { "data": { "text/plain": [ - "Puzzle 22.1: .318 seconds, answer 14273043166 ok" + "Puzzle 22.1: .313 seconds, answer 14273043166 ok" ] }, "execution_count": 259, @@ -7538,7 +7539,7 @@ { "data": { "text/plain": [ - "Puzzle 22.2: 1.136 seconds, answer 1667 ok" + "Puzzle 22.2: 1.108 seconds, answer 1667 ok" ] }, "execution_count": 262, @@ -7602,46 +7603,17 @@ "name": "stdout", "output_type": "stream", "text": [ - "271 monkeys (16%) bought, total price 1667, mean 6.2\n" + "271 monkeys (16%) bought, total price 1667, mean 6.2,\n", + "Histogram of prices: {3: 43, 4: 34, 5: 33, 6: 32, 7: 37, 8: 42, 9: 50}\n" ] - }, - { - "data": { - "image/png": "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X/0q9MzXX3+t9erVS3v22Wfd6qayNDY2asOHD9cqKyu1iRMnhg4oJGd+PPzww9r111+v+3OSNR9uuukm7ac//WnYZ9OnT9dmz56taRrJmQeRBxQWmf7jH//Qunbtqm3atCn0TE1NjZaQkKC9/vrr3PtILh4Ara2teP/99zF16tSwz6dOnYrq6mqXeuU9zp8/DwBITU0FABw5cgS1tbVhck9KSsLEiRNJ7ha4//77cdNNN2Hy5Mlhn5Oc+fH73/8eY8aMwe23347+/fvjmmuuwQsvvBD6OcmaD9dffz127NiBzz77DADw17/+FW+99RZ++MMfAiA5i4BFpu+//z7++c9/hj0zcOBAZGdnC5G7ktWMeXPmzBkEAgGkpaWFfZ6Wloba2lqXeuUtNE1DUVERrr/+emRnZwNASLbR5P7FF1843keV2bRpEz744APs3bu3089Izvz4/PPPsXr1ahQVFeGxxx7Du+++iwcffBBJSUn4yU9+QrLmxMMPP4zz589j5MiR8Pv9CAQC+OUvf4n8/HwApNMiYJFpbW0tEhMT0bt3707PiPiupANKB3w+X9j/a5rW6TPCGg888AA+/vhjvPXWW51+RnK3x/HjxzF//ny88cYb6Natm+5zJGf7tLe3Y8yYMViyZAkA4JprrsEnn3yC1atX4yc/+UnoOZK1PV5++WWsW7cOGzZswLe//W189NFHKCgowMCBA3H33XeHniM588eKTEXJnVw8APr27Qu/39/pBFhXV9fpNEmYZ968efj973+PnTt3YtCgQaHP09PTAYDkbpP3338fdXV1GD16NLp06YIuXbpg165d+M1vfoMuXbqEZElyts+AAQNw1VVXhX125ZVX4tixYwBIp3mxYMECPPLII7jzzjsxatQo3HXXXSgsLMTSpUsBkJxFwCLT9PR0tLa24ty5c7rP8IQOKAASExMxevRoVFZWhn1eWVmJ8ePHu9Qr9dE0DQ888AAqKirw5ptvYujQoWE/Hzp0KNLT08Pk3trail27dpHcTTBp0iTs27cPH330UejfmDFjMGvWLHz00UcYNmwYyZkT3/ve9zqFyn/22WcYMmQIANJpXjQ1NSEhIfzrye/3h8KMSc78YZHp6NGj0bVr17BnTp06hf3794uRO/drt4oSDDN+8cUXtU8//VQrKCjQunfvrh09etTtrinLv//7v2u9evXSqqqqtFOnToX+NTU1hZ751a9+pfXq1UurqKjQ9u3bp+Xn51OoIAc6RvFoGsmZF++++67WpUsX7Ze//KV26NAhbf369VpKSoq2bt260DMka/vcfffdWkZGRijMuKKiQuvbt69WXFwceobkbJ7Gxkbtww8/1D788EMNgFZaWqp9+OGHoXQaLDK97777tEGDBmnbt2/XPvjgA+0HP/gBhRk7wTPPPKMNGTJES0xM1L7zne+EwmEJawCI+u+ll14KPdPe3q49+eSTWnp6upaUlKR9//vf1/bt2+depz1C5AGF5MyPP/zhD1p2draWlJSkjRw5Unv++efDfk6ytk9DQ4M2f/587fLLL9e6deumDRs2THv88ce1lpaW0DMkZ/Ps3Lkz6p589913a5rGJtPm5mbtgQce0FJTU7Xk5GTt5ptv1o4dOyakvz5N0zT+dhmCIAiCIAjr0B0UgiAIgiCkgw4oBEEQBEFIBx1QCIIgCIKQDjqgEARBEAQhHXRAIQiCIAhCOuiAQhAEQRCEdNABhSAIgiAI6aADCkEQBEEQ0kEHFIIgCIIgpIMOKARBEARBSAcdUAiCIAiCkI7/D/BP7ai90MwjAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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7IJzGYjIDPysSQ47KORonMtARGbgZ03iGOIhAld3JCJzOP2zxrKl7ol0peqy7kRkL/ysiR9DPERERKQcdlCIiIhIOeygEBERkXLYQSEiIiLlsINCREREymEHhYiIiJTDDgoREREphx0UIiIiUg47KERERKQcLVeS9a/O39DQYHFJiIiIKF7+7+14dtnRsoPS2NgIAMjPz7e4JERERJSoxsZGZGdnRz1Hy80CfT4f9u7di8zMTLhcrth/kICGhgbk5+dj165d3IjQYKxr87CuzcO6Ng/r2jyy6loIgcbGRuTl5SEtLfosEy1HUNLS0tCzZ09D3yMrK4sN3iSsa/Owrs3DujYP69o8Muo61siJHyfJEhERkXLYQSEiIiLlsIMSwuPxYM6cOfB4PFYXxfZY1+ZhXZuHdW0e1rV5rKhrLSfJEhERkb1xBIWIiIiUww4KERERKYcdFCIiIlIOOyhERESkHHZQiIiISDnsoJxkyZIl6N27N9q3b4/Bgwdj/fr1VhdJexUVFTjvvPOQmZmJbt264aqrrsLnn38edI4QAnPnzkVeXh7S09NRVFSErVu3WlRi+6ioqIDL5UJZWVngGOtanj179mD8+PHo3LkzMjIycM4552DTpk2B37Ou5fj+++9x1113oXfv3khPT0efPn1wzz33wOfzBc5hXSfvrbfewhVXXIG8vDy4XC688MILQb+Pp26bm5sxdepUdOnSBR06dMDPf/5z7N69O/XCCRJCCPHMM8+Itm3bikcffVR8+umnorS0VHTo0EF89dVXVhdNa5deeql44oknxCeffCI2b94sRo8eLXr16iW+/fbbwDn333+/yMzMFM8//7zYsmWLuO6660T37t1FQ0ODhSXX23vvvScKCgrEWWedJUpLSwPHWddyHD58WJx22mnixhtvFP/v//0/sX37dvH666+Lf/7zn4FzWNdy3HvvvaJz587i5ZdfFtu3bxf/93//J0455RSxYMGCwDms6+S98sor4s477xTPP/+8ACBWr14d9Pt46nby5MmiR48eorq6WnzwwQeiuLhYnH322eL7779PqWzsoPzb+eefLyZPnhx07IwzzhCzZs2yqET2tH//fgFArFu3TgghhM/nE7m5ueL+++8PnPPdd9+J7OxssWzZMquKqbXGxkbRt29fUV1dLYYNGxbooLCu5Zk5c6a46KKLIv6edS3P6NGjxU033RR0bOzYsWL8+PFCCNa1TKEdlHjq9ptvvhFt27YVzzzzTOCcPXv2iLS0NFFVVZVSeRjiAdDS0oJNmzZh1KhRQcdHjRqF2tpai0plT/X19QCATp06AQC2b9+Ourq6oLr3eDwYNmwY6z5Jt9xyC0aPHo0RI0YEHWddy/PSSy9hyJAh+MUvfoFu3brh3HPPxaOPPhr4PetanosuughvvPEGvvjiCwDARx99hA0bNuDyyy8HwLo2Ujx1u2nTJhw/fjzonLy8PAwcODDl+tdyN2PZDh48CK/Xi5ycnKDjOTk5qKurs6hU9iOEwPTp03HRRRdh4MCBABCo33B1/9VXX5leRt0988wz+OCDD7Bx48ZWv2Ndy/Pll19i6dKlmD59Ou644w689957uO222+DxeHDDDTewriWaOXMm6uvrccYZZ8DtdsPr9eK+++7DuHHjALBdGymeuq2rq0O7du3QsWPHVuek+v3JDspJXC5X0L+FEK2OUfJuvfVWfPzxx9iwYUOr37HuU7dr1y6UlpZizZo1aN++fcTzWNep8/l8GDJkCMrLywEA5557LrZu3YqlS5fihhtuCJzHuk7ds88+i6effhorV67EgAEDsHnzZpSVlSEvLw8TJkwInMe6Nk4ydSuj/hniAdClSxe43e5Wvb39+/e36jlScqZOnYqXXnoJa9euRc+ePQPHc3NzAYB1L8GmTZuwf/9+DB48GG3atEGbNm2wbt06/M///A/atGkTqE/Wdeq6d++OM888M+hY//79sXPnTgBs1zL97ne/w6xZs/DLX/4SgwYNwq9+9StMmzYNFRUVAFjXRoqnbnNzc9HS0oIjR45EPCdZ7KAAaNeuHQYPHozq6uqg49XV1SgsLLSoVPYghMCtt96KyspKvPnmm+jdu3fQ73v37o3c3Nygum9pacG6detY9wkaPnw4tmzZgs2bNwd+hgwZguuvvx6bN29Gnz59WNeSXHjhha3S5b/44gucdtppANiuZTp27BjS0oK/qtxudyDNmHVtnHjqdvDgwWjbtm3QOfv27cMnn3ySev2nNMXWRvxpxo8//rj49NNPRVlZmejQoYPYsWOH1UXT2m9/+1uRnZ0tampqxL59+wI/x44dC5xz//33i+zsbFFZWSm2bNkixo0bxxRBSU7O4hGCdS3Le++9J9q0aSPuu+8+8Y9//EP85S9/ERkZGeLpp58OnMO6lmPChAmiR48egTTjyspK0aVLFzFjxozAOazr5DU2NooPP/xQfPjhhwKAmD9/vvjwww8DS2zEU7eTJ08WPXv2FK+//rr44IMPxE9/+lOmGcv2yCOPiNNOO020a9dO/PjHPw6kwlLyAIT9eeKJJwLn+Hw+MWfOHJGbmys8Ho+45JJLxJYtW6wrtI2EdlBY1/L87W9/EwMHDhQej0ecccYZYvny5UG/Z13L0dDQIEpLS0WvXr1E+/btRZ8+fcSdd94pmpubA+ewrpO3du3asJ/REyZMEELEV7dNTU3i1ltvFZ06dRLp6elizJgxYufOnSmXzSWEEKmNwRARERHJxTkoREREpBx2UIiIiEg57KAQERGRcthBISIiIuWwg0JERETKYQeFiIiIlMMOChERESmHHRQiIiJSDjsoREREpBx2UIiIiEg57KAQERGRcv4/x+xd3D4qaH4AAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/plain": [ - "Counter({9: 50, 3: 43, 8: 42, 7: 37, 4: 34, 5: 33, 6: 32})" - ] - }, - "execution_count": 266, - "metadata": {}, - "output_type": "execute_result" } ], "source": [ "prices = [p for secret in secrets for d, p in price_timeline(secret).items() if d == best_deltas]\n", + "hist = {i: prices.count(i) for i in range(10) if i in prices}\n", "print(f'{len(prices)} monkeys ({len(prices)/len(secrets):.0%}) bought, '\n", - " f'total price {sum(prices)}, mean {mean(prices):3.1f}')\n", - "plt.hist(prices, rwidth=0.9, bins=[x+0.5 for x in range(10)]); plt.show()\n", - "Counter(prices)" + " f'total price {sum(prices)}, mean {mean(prices):3.1f},\\n'\n", + " f'Histogram of prices: {hist}')" ] }, { @@ -7718,7 +7690,7 @@ "id": "58c39447-f458-4254-bb4c-144effd3f23c", "metadata": {}, "source": [ - "I waas also curious about exactly how many possible *n*-tuples of deltas there are for any sequence of *n* digits (not just from the secrets):" + "I was also curious about exactly how many possible *n*-tuples of deltas there are for any sequence of *n* digits (not just from the secrets):" ] }, { @@ -7781,17 +7753,44 @@ }, { "cell_type": "markdown", - "id": "bf3f03a4-c9ea-4429-82a4-3f54b7846ce0", + "id": "068355da-13fb-4076-a7ce-29fccf83bb14", "metadata": {}, "source": [ - "With 2 digits there are 24 sequences of length 4 that make (24 - 1) unique delta 3-tuples, because the sequence (0, 0, 0, 0) and (1, 1, 1, 1) both yield the deltas (0, 0, 0). \n", - "\n", - "Now we try with 10 digits, for tuples of length 1 to 5:" + "With 2 digits there are 24 sequences of length 4 that make (24 - 1) unique delta 3-tuples, because the sequence (0, 0, 0, 0) and (1, 1, 1, 1) both yield the deltas (0, 0, 0). The pattern holds for other lengths with two digits:" ] }, { "cell_type": "code", "execution_count": 276, + "id": "9dac4989-6fc8-4b45-87de-6dcfca7a91c9", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{2: 7, 3: 15, 4: 31, 5: 63, 6: 127, 7: 255, 8: 511, 9: 1023}" + ] + }, + "execution_count": 276, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "{n: len(all_deltas(digits=range(2), n=n)) for n in range(2, 10)}" + ] + }, + { + "cell_type": "markdown", + "id": "73a92c4f-06e8-4266-a6ef-68074dc0b8ce", + "metadata": {}, + "source": [ + "Now we try with 10 digits, for tuples of length 1 to 5:" + ] + }, + { + "cell_type": "code", + "execution_count": 278, "id": "2bb368b8-d5e7-431c-bd2c-19aa41983b8d", "metadata": {}, "outputs": [ @@ -7801,7 +7800,7 @@ "{1: 19, 2: 271, 3: 3439, 4: 40951, 5: 468559}" ] }, - "execution_count": 276, + "execution_count": 278, "metadata": {}, "output_type": "execute_result" } @@ -7815,7 +7814,7 @@ "id": "47add4c5-499a-4c6f-a148-74093a72e3c7", "metadata": {}, "source": [ - "This sequence of integers, 19, 271, 3439, 40951, 468559 [**appears**](https://oeis.org/search?q=+1%2C+19%2C+271%2C+3439%2C+40951&language=english&go=Search) in the Online Encyclopedia of Integer Sequences (OEIS), but it is not described as having anything to do with deltas, but rather as 10*n* - 9*n*." + "This sequence of integers, 19, 271, 3439, 40951, 468559 [**appears**](https://oeis.org/search?q=+1%2C+19%2C+271%2C+3439%2C+40951&language=english&go=Search) in the Online Encyclopedia of Integer Sequences (OEIS), a great resource for looking up a sequence of integers. It is not described as having anything to do with deltas, but rather as 10*n* - 9*n*." ] }, { @@ -7830,7 +7829,7 @@ }, { "cell_type": "code", - "execution_count": 279, + "execution_count": 281, "id": "85f5b145-8c5e-448c-8b45-ad5750252ff2", "metadata": {}, "outputs": [ @@ -7881,7 +7880,7 @@ }, { "cell_type": "code", - "execution_count": 281, + "execution_count": 283, "id": "289d2325-1e58-41f5-b4b2-b90ae26e7887", "metadata": {}, "outputs": [], @@ -7906,7 +7905,7 @@ }, { "cell_type": "code", - "execution_count": 282, + "execution_count": 284, "id": "6425577d-4ca9-45de-9698-cd9b026f7ce6", "metadata": {}, "outputs": [ @@ -7916,7 +7915,7 @@ "Puzzle 23.1: .001 seconds, answer 1170 ok" ] }, - "execution_count": 282, + "execution_count": 284, "metadata": {}, "output_type": "execute_result" } @@ -7942,7 +7941,7 @@ }, { "cell_type": "code", - "execution_count": 284, + "execution_count": 286, "id": "c497adf7-caee-4ced-9d62-0a589879b460", "metadata": {}, "outputs": [], @@ -7964,17 +7963,17 @@ }, { "cell_type": "code", - "execution_count": 285, + "execution_count": 287, "id": "0b5f08ac-18e2-4933-9737-cdbc842c5809", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "Puzzle 23.2: .004 seconds, answer bo,dd,eq,ik,lo,lu,ph,ro,rr,rw,uo,wx,yg ok" + "Puzzle 23.2: .003 seconds, answer bo,dd,eq,ik,lo,lu,ph,ro,rr,rw,uo,wx,yg ok" ] }, - "execution_count": 285, + "execution_count": 287, "metadata": {}, "output_type": "execute_result" } @@ -8024,7 +8023,7 @@ }, { "cell_type": "code", - "execution_count": 289, + "execution_count": 291, "id": "47421581-71df-4c72-a62e-c40d0596fdbb", "metadata": {}, "outputs": [ @@ -8075,7 +8074,7 @@ }, { "cell_type": "code", - "execution_count": 291, + "execution_count": 293, "id": "43b29260-d912-4cfc-91ce-d303ec1c86df", "metadata": {}, "outputs": [], @@ -8104,7 +8103,7 @@ }, { "cell_type": "code", - "execution_count": 293, + "execution_count": 295, "id": "a9a4780f-6033-452f-b49c-74b97c9e2440", "metadata": {}, "outputs": [], @@ -8126,7 +8125,7 @@ }, { "cell_type": "code", - "execution_count": 294, + "execution_count": 296, "id": "72437439-dddf-4202-9944-36e796800304", "metadata": {}, "outputs": [ @@ -8136,7 +8135,7 @@ "Puzzle 24.1: .001 seconds, answer 36035961805936 ok" ] }, - "execution_count": 294, + "execution_count": 296, "metadata": {}, "output_type": "execute_result" } @@ -8189,7 +8188,7 @@ }, { "cell_type": "code", - "execution_count": 298, + "execution_count": 300, "id": "9021ad30-f505-4164-9feb-5af740632182", "metadata": {}, "outputs": [ @@ -8244,7 +8243,7 @@ " 'z00': ('x00', 'XOR', 'y00')}" ] }, - "execution_count": 298, + "execution_count": 300, "metadata": {}, "output_type": "execute_result" } @@ -8276,17 +8275,17 @@ }, { "cell_type": "code", - "execution_count": 300, + "execution_count": 302, "id": "b35c397d-6b68-4ba6-bb46-806a449f1398", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "Counter({'XOR': 89, 'AND': 89, 'OR': 44})" + "Counter({'AND': 89, 'XOR': 89, 'OR': 44})" ] }, - "execution_count": 300, + "execution_count": 302, "metadata": {}, "output_type": "execute_result" } @@ -8317,7 +8316,7 @@ }, { "cell_type": "code", - "execution_count": 303, + "execution_count": 305, "id": "ec8d86d4-8caf-40f2-b516-c7da4acbda19", "metadata": {}, "outputs": [], @@ -8371,7 +8370,7 @@ }, { "cell_type": "code", - "execution_count": 305, + "execution_count": 307, "id": "1f259a97-dbad-40dc-903d-6436a77e1903", "metadata": {}, "outputs": [], @@ -8383,13 +8382,13 @@ " Swap wires accordingly, and yield each swapped wire.\n", " If `verbose` is true, print debugging information.\"\"\"\n", " \n", - " def out(a_gate: Tuple[str, str, str]): \n", + " def out(a_gate: Tuple[str, str, str]) -> Wire: \n", " \"\"\"The name of the output wire for this gate.\"\"\"\n", - " return device.outputs[gate(*a_gate)]\n", + " return device.outputs[*a_gate]\n", "\n", - " def swap(a: str, b: str, debug_msg: str) -> Tuple[str]:\n", + " def swap(a: Wire, b: Wire, debug_msg: str) -> Tuple[str]:\n", " \"\"\"Swap wires `a` and `b` in device.\"\"\"\n", - " if verbose: print(f'swapping ({a}, {b}) because {debug_msg}')\n", + " if verbose: print(f'swap ({a}, {b}) because {debug_msg}')\n", " device[a], device[b] = device[b], device[a]\n", " device.compute_outputs() # Recompute outputs after this swap\n", " return a, b\n", @@ -8406,7 +8405,7 @@ " if XOR2 == XORz:\n", " pass # Keep calm and carry on\n", " elif XOR2 in device.outputs:\n", - " yield from swap(out(XOR2), z, f'XOR2_{i} is {XOR2} -> {out(XOR2)}, but should output directly to {z}.')\n", + " yield from swap(out(XOR2), z, f'XOR2_{i} -> {out(XOR2)}, but should -> {z}.')\n", " else: # There is a discrepancy; find the 2 wires not shared between XOR2 and XORz\n", " counts = Counter(XOR2 + XORz)\n", " a, b = [wire for wire in counts if counts[wire] == 1] # Assumes there will be 2 such wires\n", @@ -8418,7 +8417,7 @@ }, { "cell_type": "code", - "execution_count": 306, + "execution_count": 308, "id": "e9b87c38-f67c-4948-9af6-251021747e9d", "metadata": {}, "outputs": [ @@ -8428,7 +8427,7 @@ "Puzzle 24.2: .000 seconds, answer jqf,mdd,skh,wpd,wts,z11,z19,z37 ok" ] }, - "execution_count": 306, + "execution_count": 308, "metadata": {}, "output_type": "execute_result" } @@ -8443,12 +8442,14 @@ "id": "b4741dac-4221-4770-bc53-4bb92da229ea", "metadata": {}, "source": [ + "### Part 3: Debugging and Reflections\n", + "\n", "Here I show the debugging output turned on:" ] }, { "cell_type": "code", - "execution_count": 308, + "execution_count": 310, "id": "dafe10de-c35e-4b01-9517-f048670002b3", "metadata": {}, "outputs": [ @@ -8456,10 +8457,10 @@ "name": "stdout", "output_type": "stream", "text": [ - "swapping (wpd, z11) because XOR2_11 is ('gkc', 'XOR', 'qqw') -> wpd, but should output directly to z11.\n", - "swapping (jqf, skh) because XOR2_15 is ('jqf', 'XOR', 'rkt'), but z15 expects ('rkt', 'XOR', 'skh').\n", - "swapping (mdd, z19) because XOR2_19 is ('cmp', 'XOR', 'wfc') -> mdd, but should output directly to z19.\n", - "swapping (wts, z37) because XOR2_37 is ('smt', 'XOR', 'wpp') -> wts, but should output directly to z37.\n" + "swap (wpd, z11) because XOR2_11 -> wpd, but should -> z11.\n", + "swap (jqf, skh) because XOR2_15 is ('jqf', 'XOR', 'rkt'), but z15 expects ('rkt', 'XOR', 'skh').\n", + "swap (mdd, z19) because XOR2_19 -> mdd, but should -> z19.\n", + "swap (wts, z37) because XOR2_37 -> wts, but should -> z37.\n" ] }, { @@ -8468,7 +8469,7 @@ "['wpd', 'z11', 'jqf', 'skh', 'mdd', 'z19', 'wts', 'z37']" ] }, - "execution_count": 308, + "execution_count": 310, "metadata": {}, "output_type": "execute_result" } @@ -8477,6 +8478,14 @@ "list(find_swaps(Device(connections), verbose=True))" ] }, + { + "cell_type": "markdown", + "id": "a9f0deaa-6695-4dec-ac17-fbceb8958483", + "metadata": {}, + "source": [ + "I got the correct answer, but it was disapointing because it felt like my strategy was \"hack on it until it works on my one input, with no guarantee that it will work on any other input.\"" + ] + }, { "cell_type": "markdown", "id": "b8d3967e-3473-47b0-b1b8-687c56e49138", @@ -8491,7 +8500,7 @@ }, { "cell_type": "code", - "execution_count": 310, + "execution_count": 313, "id": "f5971853-7139-4f17-bdc5-6c51e12a928d", "metadata": {}, "outputs": [ @@ -8559,7 +8568,7 @@ }, { "cell_type": "code", - "execution_count": 312, + "execution_count": 315, "id": "5302ac58-91fc-475a-83d9-cea91457df3b", "metadata": {}, "outputs": [], @@ -8581,17 +8590,17 @@ }, { "cell_type": "code", - "execution_count": 313, + "execution_count": 316, "id": "89c28b74-ed31-4bb5-b463-7177952a95ae", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "Puzzle 25.1: .022 seconds, answer 3196 ok" + "Puzzle 25.1: .021 seconds, answer 3196 ok" ] }, - "execution_count": 313, + "execution_count": 316, "metadata": {}, "output_type": "execute_result" } @@ -8622,12 +8631,12 @@ "\n", "Here are all the puzzle answers and timings. I got all the puzzles correct! And I did it before midnight (my time) on December 25th, a rarity for me. \n", "\n", - "The median run time is about 5 milliseconds, with 3 puzzles taking over a second, but none taking 2 seconds (barely!). I didn't count the time that `parse` takes, but that is less than a millisecond per day. Some people in the Rust subreddit were talking about completing the puzzles in less than 10 seconds of run time. I managed to do that, even with Python's slow interpreter rather than [Rust](https://www.rust-lang.org/)'s fast compiler. But others were talking about doing all 10 years of puzzles in less than 10 seconds, and I can't compete with that." + "The median run time is about 5 milliseconds, with 3 puzzles taking over a second, but none taking 2 seconds (barely!). I didn't count the time that `parse` takes, but that is less than a millisecond per day. Some people in the Rust subreddit were talking about completing the puzzles in less than 10 seconds of run time. I managed to do that, even with Python's slow interpreter rather than [Rust](https://www.rust-lang.org/)'s fast compiler. But others were talking about doing all *10 years* of puzzles in less than 10 seconds, and I can't compete with that." ] }, { "cell_type": "code", - "execution_count": 316, + "execution_count": 319, "id": "34813fc9-a000-4cd8-88ae-692851b3242c", "metadata": {}, "outputs": [ @@ -8641,53 +8650,53 @@ "Puzzle 2.2: .002 seconds, answer 328 ok\n", "Puzzle 3.1: .001 seconds, answer 156388521 ok\n", "Puzzle 3.2: .000 seconds, answer 75920122 ok\n", - "Puzzle 4.1: .022 seconds, answer 2401 ok\n", + "Puzzle 4.1: .021 seconds, answer 2401 ok\n", "Puzzle 4.2: .015 seconds, answer 1822 ok\n", "Puzzle 5.1: .001 seconds, answer 5762 ok\n", "Puzzle 5.2: .001 seconds, answer 4130 ok\n", "Puzzle 6.1: .001 seconds, answer 5329 ok\n", - "Puzzle 6.2: 1.967 seconds, answer 2162 ok\n", + "Puzzle 6.2: 1.932 seconds, answer 2162 ok\n", "Puzzle 7.1: .014 seconds, answer 1985268524462 ok\n", - "Puzzle 7.2: .595 seconds, answer 150077710195188 ok\n", - "Puzzle 8.1: .003 seconds, answer 220 ok\n", + "Puzzle 7.2: .586 seconds, answer 150077710195188 ok\n", + "Puzzle 8.1: .002 seconds, answer 220 ok\n", "Puzzle 8.2: .003 seconds, answer 813 ok\n", - "Puzzle 9.1: .020 seconds, answer 6332189866718 ok\n", + "Puzzle 9.1: .019 seconds, answer 6332189866718 ok\n", "Puzzle 9.2: .021 seconds, answer 6353648390778 ok\n", "Puzzle 10.1: .005 seconds, answer 744 ok\n", "Puzzle 10.2: .006 seconds, answer 1651 ok\n", "Puzzle 11.1: .002 seconds, answer 194482 ok\n", - "Puzzle 11.2: .060 seconds, answer 232454623677743 ok\n", - "Puzzle 12.1: .051 seconds, answer 1402544 ok\n", - "Puzzle 12.2: .044 seconds, answer 862486 ok\n", + "Puzzle 11.2: .059 seconds, answer 232454623677743 ok\n", + "Puzzle 12.1: .050 seconds, answer 1402544 ok\n", + "Puzzle 12.2: .043 seconds, answer 862486 ok\n", "Puzzle 13.1: .000 seconds, answer 29598 ok\n", "Puzzle 13.2: .000 seconds, answer 93217456941970 ok\n", "Puzzle 14.1: .000 seconds, answer 216027840 ok\n", - "Puzzle 14.2: 1.874 seconds, answer 6876 ok\n", - "Puzzle 15.1: .029 seconds, answer 1563092 ok\n", - "Puzzle 15.2: .042 seconds, answer 1582688 ok\n", - "Puzzle 16.1: .147 seconds, answer 103512 ok\n", - "Puzzle 16.2: .854 seconds, answer 554 ok\n", + "Puzzle 14.2: 1.802 seconds, answer 6876 ok\n", + "Puzzle 15.1: .028 seconds, answer 1563092 ok\n", + "Puzzle 15.2: .041 seconds, answer 1582688 ok\n", + "Puzzle 16.1: .146 seconds, answer 103512 ok\n", + "Puzzle 16.2: .837 seconds, answer 554 ok\n", "Puzzle 17.1: .000 seconds, answer 2,1,0,1,7,2,5,0,3 ok\n", "Puzzle 17.2: .004 seconds, answer 267265166222235 ok\n", "Puzzle 18.1: .014 seconds, answer 344 ok\n", - "Puzzle 18.2: .032 seconds, answer 46,18 ok\n", + "Puzzle 18.2: .031 seconds, answer 46,18 ok\n", "Puzzle 19.1: .004 seconds, answer 242 ok\n", - "Puzzle 19.2: .183 seconds, answer 595975512785325 ok\n", + "Puzzle 19.2: .180 seconds, answer 595975512785325 ok\n", "Puzzle 20.1: .022 seconds, answer 1343 ok\n", - "Puzzle 20.2: .761 seconds, answer 982891 ok\n", + "Puzzle 20.2: .737 seconds, answer 982891 ok\n", "Puzzle 21.1: .000 seconds, answer 205160 ok\n", "Puzzle 21.2: .004 seconds, answer 252473394928452 ok\n", - "Puzzle 22.1: .318 seconds, answer 14273043166 ok\n", - "Puzzle 22.2: 1.136 seconds, answer 1667 ok\n", + "Puzzle 22.1: .313 seconds, answer 14273043166 ok\n", + "Puzzle 22.2: 1.108 seconds, answer 1667 ok\n", "Puzzle 23.1: .001 seconds, answer 1170 ok\n", - "Puzzle 23.2: .004 seconds, answer bo,dd,eq,ik,lo,lu,ph,ro,rr,rw,uo,wx,yg ok\n", + "Puzzle 23.2: .003 seconds, answer bo,dd,eq,ik,lo,lu,ph,ro,rr,rw,uo,wx,yg ok\n", "Puzzle 24.1: .001 seconds, answer 36035961805936 ok\n", "Puzzle 24.2: .000 seconds, answer jqf,mdd,skh,wpd,wts,z11,z19,z37 ok\n", - "Puzzle 25.1: .022 seconds, answer 3196 ok\n", + "Puzzle 25.1: .021 seconds, answer 3196 ok\n", "\n", "Correct: 49/49\n", "\n", - "Time in seconds: 0.005 median, 0.169 mean, 8.284 total.\n" + "Time in seconds: 0.005 median, 0.165 mean, 8.084 total.\n" ] } ],