move notebooks to subdir

This commit is contained in:
filifa
2025-04-15 19:26:01 -04:00
parent c0dfb64979
commit 6a8215888b
29 changed files with 3 additions and 3 deletions

103
notebooks/problem0011.ipynb Normal file
View File

@@ -0,0 +1,103 @@
{
"cells": [
{
"cell_type": "markdown",
"id": "124fe12d",
"metadata": {},
"source": [
"# [Largest Product in a Grid](https://projecteuler.net/problem=11)\n",
"\n",
"Here's that whole grid in a NumPy array."
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "7d93e5b9",
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"grid = np.array([[08,02,22,97,38,15,00,40,00,75,04,05,07,78,52,12,50,77,91,08],\n",
" [49,49,99,40,17,81,18,57,60,87,17,40,98,43,69,48,04,56,62,00],\n",
" [81,49,31,73,55,79,14,29,93,71,40,67,53,88,30,03,49,13,36,65],\n",
" [52,70,95,23,04,60,11,42,69,24,68,56,01,32,56,71,37,02,36,91],\n",
" [22,31,16,71,51,67,63,89,41,92,36,54,22,40,40,28,66,33,13,80],\n",
" [24,47,32,60,99,03,45,02,44,75,33,53,78,36,84,20,35,17,12,50],\n",
" [32,98,81,28,64,23,67,10,26,38,40,67,59,54,70,66,18,38,64,70],\n",
" [67,26,20,68,02,62,12,20,95,63,94,39,63,08,40,91,66,49,94,21],\n",
" [24,55,58,05,66,73,99,26,97,17,78,78,96,83,14,88,34,89,63,72],\n",
" [21,36,23,09,75,00,76,44,20,45,35,14,00,61,33,97,34,31,33,95],\n",
" [78,17,53,28,22,75,31,67,15,94,03,80,04,62,16,14,09,53,56,92],\n",
" [16,39,05,42,96,35,31,47,55,58,88,24,00,17,54,24,36,29,85,57],\n",
" [86,56,00,48,35,71,89,07,05,44,44,37,44,60,21,58,51,54,17,58],\n",
" [19,80,81,68,05,94,47,69,28,73,92,13,86,52,17,77,04,89,55,40],\n",
" [04,52,08,83,97,35,99,16,07,97,57,32,16,26,26,79,33,27,98,66],\n",
" [88,36,68,87,57,62,20,72,03,46,33,67,46,55,12,32,63,93,53,69],\n",
" [04,42,16,73,38,25,39,11,24,94,72,18,08,46,29,32,40,62,76,36],\n",
" [20,69,36,41,72,30,23,88,34,62,99,69,82,67,59,85,74,04,36,16],\n",
" [20,73,35,29,78,31,90,01,74,31,49,71,48,86,81,16,23,57,05,54],\n",
" [01,70,54,71,83,51,54,69,16,92,33,48,61,43,52,01,89,19,67,48]])"
]
},
{
"cell_type": "markdown",
"id": "d4924c1d",
"metadata": {},
"source": [
"Now we'll just iterate through every 4x4 subgrid of this grid, and for each subgrid, compute the product of the rows, columns, and diagonals, and record the largest product we see."
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "7ac0e53c",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"70600674\n"
]
}
],
"source": [
"maximum = 0\n",
"for i in range(0, 16):\n",
" for j in range(0, 16):\n",
" subgrid = grid[i:i+4, j:j+4]\n",
" \n",
" cols = subgrid.prod(axis=0)\n",
" rows = subgrid.prod(axis=1)\n",
" diag = np.diag(subgrid).prod()\n",
" anti_diag = np.diag(np.fliplr(subgrid)).prod()\n",
" \n",
" maximum = max(maximum, *cols, *rows, diag, anti_diag)\n",
"\n",
"print(maximum)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "SageMath 9.5",
"language": "sage",
"name": "sagemath"
},
"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.11.2"
}
},
"nbformat": 4,
"nbformat_minor": 5
}