{ "cells": [ { "cell_type": "markdown", "id": "c46a45a9", "metadata": {}, "source": [ "# Plimton 322 の解読 (1)" ] }, { "cell_type": "markdown", "id": "808cfef7", "metadata": {}, "source": [ "## 粘土板に楔形文字を書く\n", "* [Writing Cuneiform (video) | Khan Academy](https://www.khanacademy.org/humanities/ancient-art-civilizations/ancient-near-east1/the-ancient-near-east-an-introduction/v/cuneiform)" ] }, { "cell_type": "markdown", "id": "cf0a8330", "metadata": {}, "source": [ "## Plimpton 322 の外観\n", "* [Mathematicians Crack Mystery of Babylonian Clay Tablet ‘Plimpton 322’ | Archaeology, Mathematics | Sci-News.com](http://www.sci-news.com/archaeology/babylonian-clay-tablet-plimpton-322-05163.html)" ] }, { "cell_type": "markdown", "id": "b44cba8d", "metadata": {}, "source": [ "![fig-2](./fig-2.jpeg)" ] }, { "cell_type": "markdown", "id": "2d435ba0", "metadata": {}, "source": [ "![fig-3](./fig-3.jpeg)" ] }, { "cell_type": "markdown", "id": "d56eb925", "metadata": {}, "source": [ "## Plimpton 322 の数表を読み込む\n", "* [Plimpton 322 - Wikipedia](https://en.wikipedia.org/wiki/Plimpton_322)\n", " - 数表-1: 60進法\n", " - 異なる推定値を括弧で示し、1番目と4番目のコラムのうち内容が推定される破損部分を斜体で示し、6つの推定誤りを太字で示し、その下の角括弧に一般に提案されている訂正を示す\n", " - 3列目の53を2倍の値である1 46に置き換えるか、2列目の56を半分の値である28に置き換えるか\n", " - 数表-2: 10進法\n", " - 11行目の2列目と3列目には、15行目を除く他の行とは異なり、共通因子が含まれている。$45$ と$1 15$はバビロニア数学では$3/4$と$5/4$と解釈される可能性があり、これはおなじみの標準的な直角三角形 $(3,4,5)$ を縮小した$(0.75, 1, 1.25)$ と一致するものです\n", " - 15行目も2列目が28、3列目が53と修正される可能性がある" ] }, { "cell_type": "code", "execution_count": 1, "id": "f173f34a-87ab-4ebb-aea9-48f7bebebc7e", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Requirement already satisfied: lxml in /opt/conda/lib/python3.11/site-packages (5.2.2)\n" ] } ], "source": [ "!pip install -U lxml" ] }, { "cell_type": "code", "execution_count": 2, "id": "18a6cc1f", "metadata": { "tags": [] }, "outputs": [], "source": [ "import pandas as pd" ] }, { "cell_type": "code", "execution_count": 3, "id": "9ddc7339", "metadata": { "tags": [] }, "outputs": [ { "data": { "text/html": [ "
\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", "
Plimpton 322Plimpton 322.1
0The Plimpton 322 clay tablet, with numbers wri...The Plimpton 322 clay tablet, with numbers wri...
1Height9 cm
2Width13 cm
3Createdc. 1800 BC
4Present locationNew York City, New York, United States
\n", "
" ], "text/plain": [ " Plimpton 322 \\\n", "0 The Plimpton 322 clay tablet, with numbers wri... \n", "1 Height \n", "2 Width \n", "3 Created \n", "4 Present location \n", "\n", " Plimpton 322.1 \n", "0 The Plimpton 322 clay tablet, with numbers wri... \n", "1 9 cm \n", "2 13 cm \n", "3 c. 1800 BC \n", "4 New York City, New York, United States " ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dfs=pd.read_html('https://en.wikipedia.org/wiki/Plimpton_322')\n", "dfs[0]" ] }, { "cell_type": "code", "execution_count": 4, "id": "b423d7da", "metadata": { "tags": [] }, "outputs": [ { "data": { "text/html": [ "
\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", " \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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
takiltum of the diagonal from which 1 is torn out so that the width comes upÍB.SI8 of the widthÍB.SI8 of the diagonalits line
0(1) 59 00 151 592 491st
1(1) 56 56 58 14 56 15 (1) 56 56 58 14 [50 06] 1556 073 12 01 [1 20 25]2nd
2(1) 55 07 41 15 33 451 16 411 50 493rd
3(1) 53 10 29 32 52 163 31 495 09 014th
4(1) 48 54 01 401 051 375th
5(1) 47 06 41 405 198 016th
6(1) 43 11 56 28 26 4038 1159 017th
7(1) 41 33 59 03 45 (1) 41 33 [45 14] 03 4513 1920 498th
8(1) 38 33 36 369 01 [8] 0112 499th
9(1) 35 10 02 28 27 24 26 401 22 412 16 0110th
10(1) 33 45451 1511th
11(1) 29 21 54 02 1527 5948 4912th
12(1) 27 00 03 457 12 01 [2 41]4 4913th
13(1) 25 48 51 35 06 4029 3153 4914th
14(1) 23 13 46 4056 56 [28] (alt.)53 [1 46] 53 (alt.)15th
\n", "
" ], "text/plain": [ " takiltum of the diagonal from which 1 is torn out so that the width comes up \\\n", "0 (1) 59 00 15 \n", "1 (1) 56 56 58 14 56 15 (1) 56 56 58 14 [50 06] 15 \n", "2 (1) 55 07 41 15 33 45 \n", "3 (1) 53 10 29 32 52 16 \n", "4 (1) 48 54 01 40 \n", "5 (1) 47 06 41 40 \n", "6 (1) 43 11 56 28 26 40 \n", "7 (1) 41 33 59 03 45 (1) 41 33 [45 14] 03 45 \n", "8 (1) 38 33 36 36 \n", "9 (1) 35 10 02 28 27 24 26 40 \n", "10 (1) 33 45 \n", "11 (1) 29 21 54 02 15 \n", "12 (1) 27 00 03 45 \n", "13 (1) 25 48 51 35 06 40 \n", "14 (1) 23 13 46 40 \n", "\n", " ÍB.SI8 of the width ÍB.SI8 of the diagonal its line \n", "0 1 59 2 49 1st \n", "1 56 07 3 12 01 [1 20 25] 2nd \n", "2 1 16 41 1 50 49 3rd \n", "3 3 31 49 5 09 01 4th \n", "4 1 05 1 37 5th \n", "5 5 19 8 01 6th \n", "6 38 11 59 01 7th \n", "7 13 19 20 49 8th \n", "8 9 01 [8] 01 12 49 9th \n", "9 1 22 41 2 16 01 10th \n", "10 45 1 15 11th \n", "11 27 59 48 49 12th \n", "12 7 12 01 [2 41] 4 49 13th \n", "13 29 31 53 49 14th \n", "14 56 56 [28] (alt.) 53 [1 46] 53 (alt.) 15th " ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dfs[1]" ] }, { "cell_type": "code", "execution_count": 7, "id": "4f804123-f002-47b7-9f60-26802fda3a0e", "metadata": { "tags": [] }, "outputs": [ { "data": { "text/html": [ "
\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", " \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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
orShort SideDiagonalRow #
0(1).98340281191691
1(1).9491586336748252
2(1).9188021460166493
3(1).886247912709185414
4(1).815007765975
5(1).78519293194816
6(1).7199837229135417
7(1).692709479912498
8(1).64266944817699
9(1).58612264961816110
10(1).562545*75*11
11(1).48941681679292912
12(1).450017416128913
13(1).43023881771322914
14(1).387160556*106*15
\n", "
" ], "text/plain": [ " or Short Side Diagonal Row #\n", "0 (1).9834028 119 169 1\n", "1 (1).9491586 3367 4825 2\n", "2 (1).9188021 4601 6649 3\n", "3 (1).8862479 12709 18541 4\n", "4 (1).8150077 65 97 5\n", "5 (1).7851929 319 481 6\n", "6 (1).7199837 2291 3541 7\n", "7 (1).6927094 799 1249 8\n", "8 (1).6426694 481 769 9\n", "9 (1).5861226 4961 8161 10\n", "10 (1).5625 45* 75* 11\n", "11 (1).4894168 1679 2929 12\n", "12 (1).4500174 161 289 13\n", "13 (1).4302388 1771 3229 14\n", "14 (1).3871605 56* 106* 15" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dfs[2]" ] }, { "cell_type": "markdown", "id": "1da62afd", "metadata": {}, "source": [ "### 11行目に着目する" ] }, { "cell_type": "code", "execution_count": 5, "id": "473463bd", "metadata": { "tags": [] }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
takiltum of the diagonal from which 1 is torn out so that the width comes upÍB.SI8 of the widthÍB.SI8 of the diagonalits line
10(1) 33 45451 1511th
\n", "
" ], "text/plain": [ " takiltum of the diagonal from which 1 is torn out so that the width comes up \\\n", "10 (1) 33 45 \n", "\n", " ÍB.SI8 of the width ÍB.SI8 of the diagonal its line \n", "10 45 1 15 11th " ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dfs[1].take([10])" ] }, { "cell_type": "code", "execution_count": 6, "id": "15a34ecf", "metadata": { "tags": [] }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
orShort SideDiagonalRow #
10(1).562545*75*11
\n", "
" ], "text/plain": [ " or Short Side Diagonal Row #\n", "10 (1).5625 45* 75* 11" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dfs[2].take([10])" ] }, { "cell_type": "code", "execution_count": 10, "id": "4b685855-7c30-4f20-9772-9e80ba3844b3", "metadata": { "tags": [] }, "outputs": [ { "data": { "text/plain": [ "60.0" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import math\n", "math.sqrt(75**2 - 45**2)" ] }, { "cell_type": "markdown", "id": "479e9666-9b79-440a-88bf-0cdd7d975e90", "metadata": {}, "source": [ "```{note}\n", "$(45, 60, 75)$という三数は、$60$進法の基数を含むため、古代バビロニア人には応用し易い組み合わせだったと考えられます。\n", "\n", "$10$進法では、既約表現である$(3, 4, 5)$を使います。\n", "```" ] }, { "cell_type": "markdown", "id": "f368e6bb-570b-458c-8375-26f3424fecd4", "metadata": {}, "source": [ "## 数表の公式" ] }, { "cell_type": "markdown", "id": "21c08a7a-a8c3-43c9-82fe-eb73b78ffa2b", "metadata": { "hide_input": false }, "source": [ "* [ピタゴラス数の求め方とその証明 | 高校数学の美しい物語](https://manabitimes.jp/math/661)" ] }, { "cell_type": "markdown", "id": "b97276b1-3fbf-43f5-893b-46a4c49cc632", "metadata": {}, "source": [ "正の整数 $p$, $q$ $(p>q)$ に対して、\n", "\n", "$$\n", " \\begin{align}\n", " a & = 2 p q \\\\\n", " b & = p^2 - q^2\\\\\n", " d & = p^2 + q^2\\\\\n", " \\end{align}\n", "$$\n", "\n", "とおくと、$a$, $b$, $d$ はピタゴラスの三数となり、$a^2+b^2 = d^2$ を満たす。" ] }, { "cell_type": "markdown", "id": "cf8ebd54-2739-48c8-9406-1d02255ef924", "metadata": {}, "source": [ "解) 恒等式\n", "\n", "$$\n", " (x-y)^2 = (x+y)^2 - 4xy\n", "$$\n", "\n", "に対して $x=p^2$, $y=q^2$ とおいて $p$, $q$ を消去する。\n", "\n", "$$\n", " \\begin{align}\n", " (p^2-q^2)^2 &= (p^2+q^2)^2 - 4p^2q^2 \\\\\n", " b^2 &= d^2 - a^2\n", " \\end{align}\n", "$$" ] }, { "cell_type": "markdown", "id": "6009cb28-8a4a-4a2c-919e-12482f90fb62", "metadata": {}, "source": [ "```{note}\n", "方程式$(2)$は、次の図の面積の関係を表しています。\n", "```" ] }, { "cell_type": "code", "execution_count": 2, "id": "912878c8-2425-4339-aa44-9adc58363e36", "metadata": { "hide_input": true, "jupyter": { "source_hidden": true }, "tags": [] }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXIAAAD8CAYAAABq6S8VAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAPxElEQVR4nO3df2xVZZ7H8c/HW1lWZghJ1/1lLZ0NZFx+dEBvdQfCRmDcODNasyabYMFsRNJssk6cZBIdFjDZGLN/bDIZCGSzRF1s1h2VGY0T1xnXCWPMhEVpwXUrqBjASPihhp0MRWqh/e4fVIO10Fvu6T3nuX2/EmLv7b3P88m58uHp03PPdUQIAJCuK/IOAACoDkUOAImjyAEgcRQ5ACSOIgeAxFHkAJC4hiwGsX1Y0ilJg5LORUQ5i3EBAGPLpMiHLY2IjzMcDwBQAbZWACBxzuKdnbYPSfo/SSHpXyNi6yiP6ZTUKUnTpk274brrrqt6XgCYTHp6ej6OiKtH3p9Vkf9pRBy1/YeSXpb0vYh49WKPL5fL0d3dXfW8ADCZ2O4Z7XeQmWytRMTR4f9+KOk5STdmMS4AYGxVF7ntaba/+tnXkv5KUm+14wIAKpPFWSt/JOk525+N9x8R8csMxgUAVKDqIo+Ig5K+kUEWAMBl4PRDAEgcRQ4AiaPIASBxFDkAJI4iB4DEUeQAkDiKHAASR5EDQOIocgBIHEUOAImjyAEgcRQ5ACSOIgeAxFHkAJA4ihwAEkeRA0DiKHIASBxFDgCJo8gBIHEUOQAkjiIHgMRR5ACQOIocABJHkQNA4ihyAEgcRQ4AiaPIASBxmRW57ZLtvbZfyGpMAMDYslyR3y9pf4bjAQAqkEmR226S9F1Jj2YxHgCgclmtyH8s6QFJQxmNBwCoUEO1A9i+TdKHEdFj++ZLPK5TUqckNTc3VzstLlNLS4vef//9vGN8rlQqaXBwMO8YGIeZM2fq8OHDecfABRwR1Q1g/5OkuyWdkzRV0nRJz0bEqos9p1wuR3d3d1Xz4vLYVrWveZaKlgdj4zXLj+2eiCiPvL/qrZWIWBsRTRHRImmFpB2XKnEAQLY4jxwAElf1HvmFIuIVSa9kOSYA4NJYkQNA4ihyAEgcRQ4AiaPIASBxFDkAJI4iB4DEUeQAkDiKHAASR5EDQOIocgBIHEUOAImjyAEgcRQ5ACSOIgeAxFHkAJA4ihwAEkeRA0DiKHIASBxFDgCJo8gBIHEUOQAkjiIHgMRR5ACQOIocABJHkQNA4ihyAEgcRQ4AiaPIASBxVRe57am2X7f9P7bfsv2PWQQDAFSmIYMxPpW0LCL6bF8p6Te2fxERuzIYGwAwhqqLPCJCUt/wzSuH/0S14wIAKpPFily2S5J6JM2StCUiXhvlMZ2SOiWpubk5i2lRJ2znHQHjUCqV8o6AETIp8ogYlLTA9gxJz9meFxG9Ix6zVdJWSSqXy6zY8bnzP9ThYmwX6hjxD2/xZHrWSkT8VtIrkm7NclwAwMVlcdbK1cMrcdn+fUnfkvR2teMCACqTxdbKn0h6Ynif/ApJz0TECxmMCwCoQBZnrbwpaWEGWQAAl4F3dgJA4ihyAEgcRQ4AiaPIASBxFDkAJI4iB4DEUeQAkDiKvA7s3r1bra2t6u/v1+nTpzV37lz19vaO/UQAdSGTi2YhX21tbWpvb9f69et15swZrVq1SvPmzcs7FoAacR5XVSuXy9Hd3V3zeevZwMCA2traNHXqVO3cufOilxot4pX0ipSniIp2jIqWZzKx3RMR5ZH3s7VSJ06ePKm+vj6dOnVK/f39eccBUEMUeZ3o7OzUww8/rJUrV+rBBx/MOw6AGmKPvA50dXWpoaFBHR0dGhwc1KJFi7Rjxw4tW7Ys72gAaoA98kmmaPubRctTREU7RkXLM5mwRw4AdYoiB4DEUeQAkDiKHAASR5EDQOIocgBIHEUOAImjyAEgcRQ5ACSOIgeAxFHkAJA4ihwAEkeRA0Diqi5y29fa/rXt/bbfsn1/FsEAAJXJ4nrk5yT9ICL22P6qpB7bL0fEvgzGBgCMoeoVeUQci4g9w1+fkrRf0jXVjgsAqEyme+S2WyQtlPTaKN/rtN1tu/ujjz7KcloAmNQyK3LbX5H0M0nfj4jfjfx+RGyNiHJElK+++uqspgWASS+TIrd9pc6X+JMR8WwWYwIAKpPFWSuW9Jik/RHxo+ojAQDGI4sV+WJJd0taZvuN4T/fyWBcAEAFqj79MCJ+I8kZZAEAXAbe2QkAiaPIASBxFDkAJI4iB4DEUeQAkDiKHAASR5EDQOIocgBIHEUOAImjyAEgcRQ5ACSOIgeAxFHkAJA4ihwAEkeRA0DiKHIASBxFDgCJo8gBIHEUOSad3bt3q7W1Vf39/Tp9+rTmzp2r3t7eip+/ZMkSvfHGG5/fXrx4sd58880JSApUhiLHpNPW1qb29natX79eDzzwgFatWqV58+ZV/Pw1a9Zo27ZtkqR3331Xn376qVpbWycoLTA2R0TNJy2Xy9Hd3V3zeSHZVh6v+cXklWdgYEBtbW2aOnWqdu7cqVKpVPFzP/nkE7W2tmr//v3asGGDmpqadN99901YVl4zfMZ2T0SUR97PihyT0smTJ9XX16dTp06pv7//S9/fsmWLFixYoAULFujo0aNf+N5VV12lW265Rc8//7yeeeYZdXR01Co2MCpW5JNM0VZTeeVpb2/XihUrdOjQIR07dkybN28e1/N7enp0++23a8mSJXr66acnKOV5vGb4zMVW5A15hAHy1NXVpYaGBnV0dGhwcFCLFi3Sjh07tGzZsorHuOGGGzR9+nTdc889E5gUqAwr8kmmaKupouWp1NGjR3XzzTfr7bff1hVXTOwOZdGOUdHyTCbskQMZ6erq0k033aRHHnlkwkscqAQr8kmmaKupouUpoqIdo6LlmUwmdEVu+3HbH9qu/F0VAIBMZPVz4TZJt2Y0FgBgHDIp8oh4VdLJLMYCAIxPzU4/tN0pqVOSmpubazUtRiiVSrKdd4wvKFoeIDU1K/KI2Cppq3T+l521mhdfNDg4yC+qEsM/dBgL504BQOIocgBIXFanH/5E0n9L+rrtI7bvzWJcAMDYMtkjj4i7shgHADB+bK0AQOIocgBIHEUOAImjyAEgcRQ5ACSOIgeAxFHkAJA4irwObNiwQRs3bvz89rp167Rp06YcEwGoJYq8Dtx777164oknJElDQ0N66qmntHLlypxTAaiVml39EBOnpaVFjY2N2rt3r06cOKGFCxeqsbEx71gAaoQirxNr1qzRtm3bdPz4ca1evTrvOABqiA9frhMDAwOaP3++zp49qwMHDqhUKo36OD44Nz1Fe82KlmcyudiHL7MirxNTpkzR0qVLNWPGjIuWOID6RJHXiaGhIe3atUvbt2/POwqAGuOslTqwb98+zZo1S8uXL9fs2bPzjgOgxliR14E5c+bo4MGDeccAkBNW5ACQOIocABJHkQNA4ihyAEgcRQ4AiaPIASBxFDkAJI4iB4DEUeQAkDiKHAASR5EDQOIyKXLbt9p+x/Z7tn+YxZgAgMpUXeS2S5K2SPq2pDmS7rI9p9pxAQCVyWJFfqOk9yLiYEQMSHpK0h0ZjAsAqEAWRX6NpA8uuH1k+D4AQA1kcT1yj3Lflz7Qz3anpE5Jam5uzmBaXI6ZM2fKHu0lQ1GVSqVCvWYzZ87MOwJGyKLIj0i69oLbTZKOjnxQRGyVtFU6/+HLGcyLy3D48OG8IwDIWBZbK7slzbb9NdtTJK2Q9PMMxgUAVKDqFXlEnLN9n6SXJJUkPR4Rb1WdDABQkUw+szMiXpT0YhZjAQDGh3d2om7s3r1bra2t6u/v1+nTpzV37lz19vbmHaswNmzYoI0bN35+e926ddq0aVOOiZAVR9T+947lcjm6u7trPi/q3/r169Xf368zZ86oqalJa9euzTtSYRw+fFh33nmn9uzZo6GhIc2ePVuvv/66Ghsb846GCtnuiYjyyPsz2VoBiuKhhx5SW1ubpk6dympzhJaWFjU2Nmrv3r06ceKEFi5cSInXCYocdeXkyZPq6+vT2bNn1d/fr2nTpuUdqVDWrFmjbdu26fjx41q9enXecZARtlZQV9rb27VixQodOnRIx44d0+bNm/OOVCgDAwOaP3++zp49qwMHDqhUKuUdCePA1grqXldXlxoaGtTR0aHBwUEtWrRIO3bs0LJly/KOVhhTpkzR0qVLNWPGDEq8jrAiByaRoaEhXX/99dq+fbtmz56ddxyM08VW5Jx+CEwS+/bt06xZs7R8+XJKvM6wtQJMEnPmzNHBgwfzjoEJwIocABJHkQNA4ihyAEgcRQ4AiaPIASBxFDkAJI4iB4DEUeQAkDiKHAASR5EDQOIocgBIHEUOAImjyAEgcRQ5ACSOIgeAxFHkAJA4ihwAEkeRA0DiKHIASFxVRW77b2y/ZXvI9pc+2RkAMPGqXZH3SrpT0qsZZAEAXIaGap4cEfslyXY2aQAA41ZVkY+H7U5JncM3+2y/MwHT/IGkjydg3HrCMbo0js/YOEaXNpHHZ+Zod45Z5LZ/JemPR/nWuoh4vtLZI2KrpK2VPv5y2O6OCPbqL4FjdGkcn7FxjC4tj+MzZpFHxLdqEQQAcHk4/RAAElft6Yd/bfuIpG9K+k/bL2UT67JN6NZNneAYXRrHZ2wco0ur+fFxRNR6TgBAhthaAYDEUeQAkLi6K3Lb/2z7bdtv2n7O9oy8MxWB7Vttv2P7Pds/zDtP0di+1vavbe8fvuzE/XlnKiLbJdt7bb+Qd5Yisj3D9k+HO2i/7W/WYt66K3JJL0uaFxGtkt6VtDbnPLmzXZK0RdK3Jc2RdJftOfmmKpxzkn4QEX8u6S8k/T3HaFT3S9qfd4gC2yjplxFxnaRvqEbHqu6KPCL+KyLODd/cJakpzzwFcaOk9yLiYEQMSHpK0h05ZyqUiDgWEXuGvz6l838Br8k3VbHYbpL0XUmP5p2liGxPl/SXkh6TpIgYiIjf1mLuuivyEVZL+kXeIQrgGkkfXHD7iCipi7LdImmhpNdyjlI0P5b0gKShnHMU1Z9J+kjSvw1vPz1qe1otJk6yyG3/ynbvKH/uuOAx63T+x+Un80taGKNd1YzzTkdh+yuSfibp+xHxu7zzFIXt2yR9GBE9eWcpsAZJ10v6l4hYKOm0pJr8PqpmF83K0liXDbD9t5Juk7Q8OFFeOr8Cv/aC202SjuaUpbBsX6nzJf5kRDybd56CWSyp3fZ3JE2VNN32v0fEqpxzFckRSUci4rOf5H6qGhV5kivyS7F9q6QHJbVHxCd55ymI3ZJm2/6a7SmSVkj6ec6ZCsXnr8X8mKT9EfGjvPMUTUSsjYimiGjR+f9/dlDiXxQRxyV9YPvrw3ctl7SvFnMnuSIfw2ZJvyfp5eHrpO+KiL/LN1K+IuKc7fskvSSpJOnxiHgr51hFs1jS3ZL+1/Ybw/f9Q0S8mF8kJOh7kp4cXjAdlHRPLSblLfoAkLi621oBgMmGIgeAxFHkAJA4ihwAEkeRA0DiKHIASBxFDgCJ+3/Z400M6eMAgAAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "from matplotlib.patches import Polygon\n", "import matplotlib.pyplot as plt\n", "\n", "p0 = Polygon([(0,0), (3,0), (3,1), (0,1), ], fill=False)\n", "p1 = Polygon([(3,0), (4,0), (4,3), (3,3), ], fill=False)\n", "p2 = Polygon([(4,3), (4,4), (1,4), (1,3), ], fill=False)\n", "p3 = Polygon([(1,1), (1,4), (0,4), (0,1), ], fill=False)\n", "\n", "fig, ax = plt.subplots(1,1)\n", "\n", "ax.add_patch(p0)\n", "ax.add_patch(p1)\n", "ax.add_patch(p2)\n", "ax.add_patch(p3)\n", "ax.axis('equal')\n", "ax.set(xlim=(0,4),ylim=(-1,5))\n", "\n", "plt.text(1.5,-0.3,'x')\n", "plt.text(3.5,-0.3,'y')\n", "plt.text(-0.3,2.5,'x')\n", "plt.text(-0.3,0.5,'y')\n", "plt.text(1.8,1.2, 'x - y')\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "fc41d7b3-ee58-4c2f-88cb-ec956ffaafcb", "metadata": {}, "source": [ "Plimpton 322との対応は次の表の通りである:" ] }, { "cell_type": "markdown", "id": "4c1000f9-794d-4bdb-ac27-aefe8a9655a1", "metadata": {}, "source": [ "|#1 |#2 |#3 |\n", "|:-:|:-:|:-:|\n", "|$$\\left(\\frac{d}{a}\\right)^2$$|$$b$$ |$$d$$ |\n", "|$$\\frac{1}{4}\\left(\\frac{p}{q}+\\frac{q}{p}\\right)^2$$|$$p^2-q^2$$|$$p^2+q^2$$|" ] }, { "cell_type": "markdown", "id": "ba5e6f06-4623-4c62-8299-63f731f10183", "metadata": {}, "source": [ "命題) Plimpton 322は、互いに素な正の整数 $p$, $q$ のうち、\n", "\n", "$$\n", " \\frac{9}{5} \\leq \\frac{p}{q} \\leq \\frac{12}{5}\n", "$$\n", "\n", "を満たす組み合わせについて、\n", "\n", "$$\n", "\\frac{d}{a} = \\frac{1}{2}\\left(\\frac{p}{q}+\\frac{q}{p}\\right)\n", "$$\n", "\n", "をキーとして降順に並べたものである。" ] } ], "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.11.8" }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": false, "toc_position": {}, "toc_section_display": true, "toc_window_display": false } }, "nbformat": 4, "nbformat_minor": 5 }