{"id":427,"date":"2024-02-29T14:35:59","date_gmt":"2024-02-29T19:35:59","guid":{"rendered":"https:\/\/pressbooks.bccampus.ca\/businessanalytics\/chapter\/distances\/"},"modified":"2024-02-29T14:38:50","modified_gmt":"2024-02-29T19:38:50","slug":"distances","status":"publish","type":"chapter","link":"https:\/\/pressbooks.bccampus.ca\/businessanalytics\/chapter\/distances\/","title":{"raw":"Distances","rendered":"Distances"},"content":{"raw":"<div class=\"jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs\">\r\n<div class=\"jp-Cell-inputWrapper\">\r\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\"><\/div>\r\n<div class=\"jp-InputArea jp-Cell-inputArea\">\r\n<div class=\"jp-InputPrompt jp-InputArea-prompt\">In\u00a0[\u00a0]:<\/div>\r\n<div class=\"jp-CodeMirrorEditor jp-Editor jp-InputArea-editor\" data-type=\"inline\">\r\n<div class=\"CodeMirror cm-s-jupyter\">\r\n<div class=\"highlight hl-ipython3\">\r\n<pre><span class=\"o\">---<\/span>\r\n<span class=\"n\">title<\/span><span class=\"p\">:<\/span> <span class=\"n\">Distances<\/span><span class=\"p\">,<\/span> <span class=\"n\">Norms<\/span> <span class=\"ow\">and<\/span> <span class=\"n\">Metrics<\/span>\r\n<span class=\"n\">author<\/span><span class=\"p\">:<\/span> <span class=\"n\">Amy<\/span> <span class=\"n\">Goldlist<\/span>\r\n<span class=\"nb\">format<\/span><span class=\"p\">:<\/span>\r\n    <span class=\"n\">html<\/span><span class=\"p\">:<\/span>\r\n        <span class=\"n\">embed<\/span><span class=\"o\">-<\/span><span class=\"n\">resources<\/span><span class=\"p\">:<\/span> <span class=\"n\">true<\/span>\r\n        <span class=\"n\">code<\/span><span class=\"o\">-<\/span><span class=\"n\">fold<\/span><span class=\"p\">:<\/span> <span class=\"n\">false<\/span>\r\n<\/pre>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<div class=\"jp-Cell jp-MarkdownCell jp-Notebook-cell\">\r\n<div class=\"jp-Cell-inputWrapper\">\r\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\"><\/div>\r\n<div class=\"jp-InputArea jp-Cell-inputArea\">\r\n<div class=\"jp-InputPrompt jp-InputArea-prompt\"><\/div>\r\n<div class=\"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput\" data-mime-type=\"text\/markdown\">\r\n<h2 id=\"Distance-(or-L2-Norm-\/-Metric)\">Distance (or L2 Norm \/ Metric)<a class=\"anchor-link\" href=\"#Distance-(or-L2-Norm-\/-Metric)\">\u00b6<\/a><\/h2>\r\nThe distance between two points [latex](x_1, y_1)[\/latex] and [latex](x_2, y_2)[\/latex] is given by:\r\n\r\n$$\\|(x_2, y_2)-(x_1, y_1)\\|= d = \\sqrt{(x_2-x_1)^2+(y_2-y_1)^2}$$\r\n\r\nWe use the bars $\\|\\cdot\\|$ to mean \"distance\".\r\n\r\nWe can extend this to as many dimensions as we want:\r\n\r\n$$\\|(x_2, y_2, z_2, w_2)-(x_1, y_1, z_1, w_1)\\|= d = \\sqrt{(x_2-x_1)^2+(y_2-y1)^2+(z_2-z_1)^2+(w_2-w_1)^2}$$\r\n\r\nFor example:\r\n\r\n$$\\|(4, 3)-(3,-1)\\|= d = \\sqrt{(4-1)^2+(3+1)^2}= \\sqrt{25} = 5$$\r\n\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<div class=\"jp-Cell jp-CodeCell jp-Notebook-cell\">\r\n<div class=\"jp-Cell-inputWrapper\">\r\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\"><\/div>\r\n<div class=\"jp-InputArea jp-Cell-inputArea\">\r\n<div class=\"jp-InputPrompt jp-InputArea-prompt\">In\u00a0[1]:<\/div>\r\n<div class=\"jp-CodeMirrorEditor jp-Editor jp-InputArea-editor\" data-type=\"inline\">\r\n<div class=\"CodeMirror cm-s-jupyter\">\r\n<div class=\"highlight hl-ipython3\">\r\n<pre><span class=\"kn\">import<\/span> <span class=\"nn\">numpy<\/span> <span class=\"k\">as<\/span> <span class=\"nn\">np<\/span>\r\n<span class=\"kn\">from<\/span> <span class=\"nn\">numpy.linalg<\/span> <span class=\"kn\">import<\/span> <span class=\"o\">*<\/span>\r\n\r\n<span class=\"c1\">## In Python:<\/span>\r\n<span class=\"c1\">## Let's define two points: <\/span>\r\n\r\n<span class=\"n\">a<\/span><span class=\"o\">=<\/span><span class=\"n\">np<\/span><span class=\"o\">.<\/span><span class=\"n\">array<\/span><span class=\"p\">([<\/span><span class=\"mi\">4<\/span><span class=\"p\">,<\/span><span class=\"mi\">3<\/span><span class=\"p\">])<\/span>\r\n<span class=\"n\">b<\/span><span class=\"o\">=<\/span><span class=\"n\">np<\/span><span class=\"o\">.<\/span><span class=\"n\">array<\/span><span class=\"p\">([<\/span><span class=\"mi\">1<\/span><span class=\"p\">,<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"p\">])<\/span>\r\n\r\n<span class=\"c1\">##and find the distance between them:<\/span>\r\n<span class=\"nb\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">\"a = \"<\/span><span class=\"p\">,<\/span><span class=\"n\">a<\/span><span class=\"p\">,<\/span> <span class=\"s2\">\"b= \"<\/span><span class=\"p\">,<\/span> <span class=\"n\">b<\/span><span class=\"p\">)<\/span>\r\n<span class=\"n\">norm<\/span><span class=\"p\">(<\/span><span class=\"n\">a<\/span><span class=\"o\">-<\/span><span class=\"n\">b<\/span><span class=\"p\">)<\/span>\r\n<\/pre>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<div class=\"jp-Cell-outputWrapper\">\r\n<div class=\"jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser\"><\/div>\r\n<div class=\"jp-OutputArea jp-Cell-outputArea\">\r\n<div class=\"jp-OutputArea-child\">\r\n<div class=\"jp-OutputPrompt jp-OutputArea-prompt\"><\/div>\r\n<div class=\"jp-RenderedText jp-OutputArea-output\" data-mime-type=\"text\/plain\">\r\n<pre>a =  [4 3] b=  [ 1 -1]\r\n<\/pre>\r\n<\/div>\r\n<\/div>\r\n<div class=\"jp-OutputArea-child\">\r\n<div class=\"jp-OutputPrompt jp-OutputArea-prompt\">Out[1]:<\/div>\r\n<div class=\"jp-RenderedText jp-OutputArea-output jp-OutputArea-executeResult\" data-mime-type=\"text\/plain\">\r\n<pre>5.0<\/pre>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<div class=\"jp-Cell jp-CodeCell jp-Notebook-cell\">\r\n<div class=\"jp-Cell-inputWrapper\">\r\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\"><\/div>\r\n<div class=\"jp-InputArea jp-Cell-inputArea\">\r\n<div class=\"jp-InputPrompt jp-InputArea-prompt\">In\u00a0[3]:<\/div>\r\n<div class=\"jp-CodeMirrorEditor jp-Editor jp-InputArea-editor\" data-type=\"inline\">\r\n<div class=\"CodeMirror cm-s-jupyter\">\r\n<div class=\"highlight hl-ipython3\">\r\n<pre><span class=\"c1\">## And let's graph it:<\/span>\r\n\r\n<span class=\"kn\">import<\/span> <span class=\"nn\">matplotlib.pyplot<\/span> <span class=\"k\">as<\/span> <span class=\"nn\">plt<\/span> \r\n\r\n<span class=\"n\">plt<\/span><span class=\"o\">.<\/span><span class=\"n\">plot<\/span><span class=\"p\">([<\/span><span class=\"n\">a<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">],<\/span><span class=\"n\">b<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">]],<\/span> <span class=\"p\">[<\/span><span class=\"n\">a<\/span><span class=\"p\">[<\/span><span class=\"mi\">1<\/span><span class=\"p\">],<\/span><span class=\"n\">b<\/span><span class=\"p\">[<\/span><span class=\"mi\">1<\/span><span class=\"p\">]],<\/span> <span class=\"s1\">'red'<\/span><span class=\"p\">,<\/span> <span class=\"n\">linestyle<\/span><span class=\"o\">=<\/span><span class=\"s1\">'-'<\/span><span class=\"p\">,<\/span> <span class=\"n\">marker<\/span><span class=\"o\">=<\/span><span class=\"s1\">'*'<\/span><span class=\"p\">)<\/span>\r\n\r\n\r\n<span class=\"n\">plt<\/span><span class=\"o\">.<\/span><span class=\"n\">axis<\/span><span class=\"p\">(<\/span><span class=\"s1\">'equal'<\/span><span class=\"p\">)<\/span>  <span class=\"c1\">## This is important to get the display correct<\/span>\r\n<span class=\"n\">plt<\/span><span class=\"o\">.<\/span><span class=\"n\">title<\/span><span class=\"p\">(<\/span><span class=\"s1\">'L2 Distance between 2 points'<\/span><span class=\"p\">)<\/span> \r\n\r\n<span class=\"n\">plt<\/span><span class=\"o\">.<\/span><span class=\"n\">xticks<\/span><span class=\"p\">(<\/span><span class=\"nb\">range<\/span><span class=\"p\">(<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"p\">,<\/span><span class=\"mi\">8<\/span><span class=\"p\">))<\/span>\r\n<span class=\"n\">plt<\/span><span class=\"o\">.<\/span><span class=\"n\">yticks<\/span><span class=\"p\">(<\/span><span class=\"nb\">range<\/span><span class=\"p\">(<\/span><span class=\"o\">-<\/span><span class=\"mi\">5<\/span><span class=\"p\">,<\/span><span class=\"mi\">8<\/span><span class=\"p\">))<\/span>\r\n\r\n\r\n<span class=\"c1\"># Show plot with grid <\/span>\r\n<span class=\"n\">plt<\/span><span class=\"o\">.<\/span><span class=\"n\">grid<\/span><span class=\"p\">()<\/span> \r\n\r\n<span class=\"c1\">##always important to actually display!<\/span>\r\n<span class=\"n\">plt<\/span><span class=\"o\">.<\/span><span class=\"n\">show<\/span><span class=\"p\">()<\/span> \r\n<\/pre>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<div class=\"jp-Cell-outputWrapper\">\r\n<div class=\"jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser\"><\/div>\r\n<div class=\"jp-OutputArea jp-Cell-outputArea\">\r\n<div class=\"jp-OutputArea-child\">\r\n<div class=\"jp-OutputPrompt jp-OutputArea-prompt\"><\/div>\r\n<div class=\"jp-RenderedImage jp-OutputArea-output\"><img class=\"\" src=\"image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAiYAAAGxCAYAAABWRX0gAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAwhklEQVR4nO3deXQUdbrG8adDOk0CSYCEQEJCEgOCKDAILixOWJWAKC6gok5QxisQQETPdYTLsIyC3vHqOFfZFFmOhMURcAeCsnkHFBAGBhVFgTgKIkF2CE343T80PYQESEKqq7r7+zknR7tS1fW+XfHkseqtissYYwQAAOAAYXYXAAAAUIxgAgAAHINgAgAAHINgAgAAHINgAgAAHINgAgAAHINgAgAAHINgAgAAHINgAgAAHINgAseZOXOmXC6XNmzYcN51vvrqKz3++ONq3bq1atWqpTp16qh9+\/b629\/+Vq59rFy5Ui6Xy\/cVERGhunXrqn379ho1apR279593rp27dpVoX4mTJigxYsXV2gbJ3O5XBoyZEiVvd\/x48c1duxYrVy5ssre02kWLlyoe+65R40aNVJkZKTS0tJ077336uuvv7atprS0NPXv379S2+bm5uovf\/lLldYDFCOYICAtW7ZM7733nu644w698cYbmjNnjho3bqw+ffpo\/Pjx5X6fCRMmaO3atVqxYoWmT5+ujh076rXXXtMVV1yhOXPmlFi3Z8+eWrt2rRITEytUa7AFk6p2\/PhxjRs3LqiDybPPPqvjx49r1KhRWrJkiZ566ilt2rRJV199tbZt22ZLTYsWLdLo0aMrtS3BBFYKt7sAoDLuvvtu5eTkyOVy+ZZlZWVp\/\/79evbZZ\/XEE0\/I4\/Fc9H0aN26s66+\/3vf6lltu0WOPPaauXbuqf\/\/+atGihZo3by5Jqlu3rurWrVv1zSDovfPOO0pISCixrHPnzkpLS9MLL7ygV1991e81tWrVyu\/7BMqDMyYISPHx8SVCSbFrr71Wx48f14EDByr93nXq1NHUqVN1+vRpvfDCC77lZV3K2bRpk26++WYlJCTI4\/EoKSlJPXv21L\/+9S9Jv1z2OHbsmGbNmuW7bNSxY0dJ0k8\/\/aTBgwerWbNmqlmzphISEtS5c2etWbOmRD27du2Sy+XSc889p+eff17p6emqWbOm2rZtq3Xr1pWq\/5NPPlGvXr0UFxen6tWrKyMjQ8OHDy+xztdff61+\/fr56r7iiiv08ssvV+hzmjp1qi6\/\/HJ5PB41a9ZM8+bNK7XO3r179fDDDys5OVkRERFKT0\/XuHHjdPr0aV9vxWFv3Lhxvs+of\/\/+2rZtm1wul9544w3f+23cuFEul0tXXnllif3ccsstat26dYll8+fPV9u2bVWjRg3VrFlTN910kzZt2lSqxg0bNuiWW25RnTp1VL16dbVq1UoLFiwosU7xsV+xYoUGDRqk+Ph4xcXF6fbbb9cPP\/xw0c\/q3FAiSUlJSUpOTtZ333130e07duyoq666SmvWrNH111+vyMhINWjQQKNHj1ZRUVGJdQ8cOKDBgwerQYMGioiI0GWXXaZRo0apsLCwxHrnXsopvrw5d+5cjRo1SklJSYqJiVHXrl21ffv2ErW899572r17d4nLocUmT56sli1bqmbNmoqOjlbTpk01cuTIi\/YI+BjAYWbMmGEkmfXr11d4244dO5q6deua06dPX3C9FStWGEnmjTfeOO86iYmJJiMjo1RdO3fuNMYYc\/ToURMXF2fatGljFixYYFatWmXmz59vBg4caD7\/\/HNjjDFr1641kZGRpkePHmbt2rVm7dq1Ztu2bcYYY7788kszaNAgM2\/ePLNy5Urz7rvvmgEDBpiwsDCzYsUK33537txpJJm0tDTTvXt3s3jxYrN48WLTvHlzU7t2bXPw4EHfukuWLDFut9u0aNHCzJw503z00UfmtddeM3fffbdvnW3btpnY2FjTvHlzM3v2bLNs2TLz2GOPmbCwMDN27NiLfsaSTEpKimnWrJmZO3euefvtt0337t1LfZ579uwxKSkpJjU11UydOtUsX77c\/OlPfzIej8f079\/fGGPMyZMnzZIlS4wkM2DAAN9ntGPHDt8x+I\/\/+A\/fez7zzDMmMjLSSDLff\/+9McYYr9drYmJizH\/+53\/61nv66aeNy+UyDz74oHn33XfNwoULTdu2bU2NGjV8n78xxnz00UcmIiLC3HDDDWb+\/PlmyZIlpn\/\/\/kaSmTFjRqljf9lll5mhQ4eapUuXmldffdXUrl3bdOrU6aKfWVm++eYbExYWZh599NGLrpuZmWni4uJMUlKS+etf\/2qWLl1qhg0bZiSZnJwc33onTpwwLVq0MDVq1DDPPfecWbZsmRk9erQJDw83PXr0KPGeqampJjs72\/e6+L+JtLQ0c++995r33nvPzJ071zRs2NA0btzY99\/Utm3bTPv27U39+vV9x2vt2rXGGGPmzp1rJJmhQ4eaZcuWmeXLl5spU6aYYcOGVeozQmgimMBxKhtMXnnlFSPJvPjiixddtzzB5LrrrjORkZGl6ioOJhs2bDCSzOLFiy+4rxo1apT4BXA+p0+fNl6v13Tp0sXcdtttvuXFwaR58+YlAtenn35qJJm5c+f6lmVkZJiMjAxz4sSJ8+7npptuMsnJyebQoUMllg8ZMsRUr17dHDhw4IJ1SjKRkZFm7969JWpv2rSpadSokW\/Zww8\/bGrWrGl2795dYvvnnnvOSPIFhJ9++slIMmPGjCm1r\/vuu89cdtllvtddu3Y1Dz30kKldu7aZNWuWMcaY\/\/u\/\/zOSzLJly4wxxuTn55vw8HAzdOjQEu915MgRU79+fdO3b1\/fsqZNm5pWrVoZr9dbYt2bb77ZJCYmmqKiImPMv4\/94MGDS6z33\/\/930aS2bNnzwU\/s3N5vV7TsWNHExMTY\/Lz8y+6fmZmppFk3nrrrRLLH3roIRMWFub7jKdMmWIkmQULFpRY79lnny3xGRlz\/mByboBZsGCBkeQLH8YY07NnT5OamlqqziFDhphatWpdtB\/gQriUg6DwwQcfKCcnR3feeaeGDh1aJe9pjLng9xs1aqTatWvriSee0JQpU\/T5559XeB9TpkzR1VdfrerVqys8PFxut1sffvihvvjii1Lr9uzZU9WqVfO9btGihST57iD66quv9M0332jAgAGqXr16mfs7efKkPvzwQ912222KiorS6dOnfV89evTQyZMny7w8dK4uXbqoXr16vtfVqlXTXXfdpR07dvguY7377rvq1KmTkpKSSuwnKytLkrRq1apy7efbb7\/Vzp07dfLkSX388cfq3r27OnXqpLy8PEnS8uXL5fF41KFDB0nS0qVLdfr0af3ud78rsd\/q1asrMzPTN2S7Y8cOffnll7r33nslqdRnsWfPnhKXMKRfLhmd7dxjUB7GGA0YMEBr1qzR7NmzlZKSUq7toqOjS+2\/X79+OnPmjFavXi1J+uijj1SjRg3deeedJdYrvmTz4YcfXnQ\/l9Ljtddeq4MHD+qee+7RW2+9pf379190G+BcBBMEvKVLl+r2229Xt27dNGfOnDJnTyojPz9fSUlJ5\/1+bGysVq1apd\/85jcaOXKkrrzySiUlJWnMmDHyer0Xff\/nn39egwYN0nXXXac333xT69at0\/r169W9e3edOHGi1PpxcXElXhcP9xav+9NPP0mSkpOTz7vPgoICnT59Wv\/7v\/8rt9td4qtHjx6SVK5fJvXr1z\/vsoKCAknSjz\/+qHfeeafUfornQ8qzn65du0r6JXx8\/PHH8nq96ty5s7p27er7Jbt8+XK1b99ekZGRvv1K0jXXXFNq3\/Pnz\/ftt3i9xx9\/vNR6gwcPLrPGix2DizHG6Pe\/\/71ef\/11zZw5U7feemu5tpNUIggWO\/czLygoUP369Uv9N5CQkKDw8HDfehdyKT3ef\/\/9eu2117R7927dcccdSkhI0HXXXecLkUB5cFcOAtrSpUvVu3dvZWZm6s0331RERESVvO+nn36qvXv3asCAARdcr3nz5po3b56MMdqyZYtmzpyp8ePHKzIyUn\/4wx8uuO3rr7+ujh07avLkySWWHzlypFI1Fw+RFp+xKEvt2rVVrVo13X\/\/\/crJySlznfT09Ivua+\/eveddVvyLLT4+Xi1atNDTTz9d5ntcKPQVS05O1uWXX67ly5crLS1Nbdq0Ua1atdSlSxcNHjxYn3zyidatW6dx48b5tomPj5ck\/e1vf1Nqaup537t4vSeffFK33357mes0adLkojWWV3EomTFjhqZPn6777ruvQtsXB6mznfuZx8XF6ZNPPpExpkQ42bdvn06fPu3r2UoPPPCAHnjgAR07dkyrV6\/WmDFjdPPNN+urr7664PEAihFMELCWLVum3r17q0OHDlq8eHG5bg8ujwMHDmjgwIFyu9169NFHy7WNy+VSy5Yt9cILL2jmzJn67LPPfN\/zeDxl\/t+my+UqVfOWLVu0du3acp\/eP9vll1+ujIwMvfbaaxoxYkSZn0dUVJQ6deqkTZs2qUWLFpUOch9++KF+\/PFH3\/\/FFxUVaf78+crIyPCdsbn55pv1\/vvvKyMjQ7Vr1z7ve13s\/8i7du2qBQsWKCUlRT179vT12rBhQ\/3xj3+U1+v1nVmRpJtuuknh4eH65ptvdMcdd5x3v02aNFHjxo31j3\/8QxMmTKjYB1BBxhg99NBDmjFjhqZOnaoHHnigwu9x5MgRvf322yUuteTm5iosLEy\/\/e1vJf1y6WvBggVavHixbrvtNt96s2fP9n2\/KpzvZ\/psNWrUUFZWlk6dOqXevXtr27ZtBBOUC8EEjvXRRx+V+ZTVHj166LPPPlPv3r1Vv359jRw5Ups3by6xTrNmzRQTE3PRfXz99ddat26dzpw5o4KCAn3yySeaPn26Dh8+rNmzZ5e6LfVs7777riZNmqTevXvrsssukzFGCxcu1MGDB9WtWzffes2bN9fKlSv1zjvvKDExUdHR0WrSpIluvvlm\/elPf9KYMWOUmZmp7du3a\/z48UpPT\/fdTltRL7\/8snr16qXrr79ejz76qBo2bKj8\/HwtXbrU98C4F198UR06dNANN9ygQYMGKS0tTUeOHNGOHTv0zjvv6KOPPrrofuLj49W5c2eNHj1aNWrU0KRJk\/Tll1+WuGV4\/PjxysvLU7t27TRs2DA1adJEJ0+e1K5du\/T+++9rypQpSk5OVnR0tFJTU\/XWW2+pS5cuqlOnjuLj45WWlibpl1+mkyZN0v79+0s81KtLly6aMWOGateuXeJW4bS0NI0fP16jRo3St99+q+7du6t27dr68ccf9emnn6pGjRq+MyxTp05VVlaWbrrpJvXv318NGjTQgQMH9MUXX+izzz4rcavypRg2bJimT5+uBx98UM2bNy8xx+PxeMr1TJG4uDgNGjRI+fn5uvzyy\/X+++\/rlVde0aBBg9SwYUNJ0u9+9zu9\/PLLys7O1q5du9S8eXN9\/PHHmjBhgnr06FEiwF2K5s2ba+HChZo8ebJat26tsLAwtWnTRg899JAiIyPVvn17JSYmau\/evZo4caJiY2N1zTXXVMm+EQLsm7sFylZ8B8T5vnbu3GnGjBlzwXXOvt22LMV3IBR\/hYeHm7i4ONO2bVszcuRIs2vXrvPWVXxXzpdffmnuuecek5GRYSIjI01sbKy59tprzcyZM0tst3nzZtO+fXsTFRVlJJnMzExjjDGFhYXm8ccfNw0aNDDVq1c3V199tVm8eLHJzs4uccdD8V05f\/7zn0vVpDLuZlm7dq3JysoysbGxxuPxmIyMjFK3pO7cudM8+OCDpkGDBsbtdpu6deuadu3amaeeeuqCn1vxPnNycsykSZNMRkaGcbvdpmnTpmbOnDml1v3pp5\/MsGHDTHp6unG73aZOnTqmdevWZtSoUebo0aO+9ZYvX25atWplPB6PkVTibpGff\/7ZhIWFmRo1aphTp075ls+ZM8dIMrfffnuZdS5evNh06tTJxMTEGI\/HY1JTU82dd95pli9fXmK9f\/zjH6Zv374mISHBuN1uU79+fdO5c2czZcoU3zrnu1Os+OfoYj9vqamp5\/1ZLevulnNlZmaaK6+80qxcudK0adPGeDwek5iYaEaOHFnqjqKCggIzcOBAk5iYaMLDw01qaqp58sknzcmTJ0vVVNZdOefeqVb883f27dMHDhwwd955p6lVq5ZxuVym+FfJrFmzTKdOnUy9evVMRESESUpKMn379jVbtmy5aI9AMZcxF7n1AABgq44dO2r\/\/v365z\/\/aXcpgOW4KwcAADgGwQQAADgGl3IAAIBjcMYEAAA4BsEEAAA4BsEEAAA4hqMfsHbmzBn98MMPio6OrrK\/fwIAAKxljNGRI0eUlJSksLCKnQNxdDD54YcfKvVobgAAYL\/vvvvugn9YtCyODibR0dGSpJ07d6pOnTo2V+M\/Xq9Xy5Yt04033ii32213OX5D3\/QdCuibvkPBgQMHlJ6e7vs9XhGODibFl2+io6PL9XdPgoXX61VUVJRiYmJC6geZvuk7FNA3fYcCr9crSZUaw2D4FQAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAD8yLVxo9qNHi3Xxo12lwI4kqXBZPLkyWrRooViYmIUExOjtm3b6oMPPrBylwDgaK7XX1fdrVvlmjPH7lIARwq38s2Tk5P1zDPPqFGjRpKkWbNm6dZbb9WmTZt05ZVXWrlrAHCO3bul\/fsll0thCxZIksLmz5ceeEAyRoqPl1JTbS4ScAZLg0mvXr1KvH766ac1efJkrVu3rsxgUlhYqMLCQt\/rw4cPS5K8Xq+8Xq+VpTpKca+h1LNE3\/QdvNxpaaUX7t8vtW7te+k9dcp\/BdkglI732UK978pwGWNMFdZyXkVFRXrjjTeUnZ2tTZs2qVmzZqXWGTt2rMaNG1dqeW5urqKiovxRJgBUueRVq9Tqr39VWFFRqe+dqVZNm4YN078yM22oDLDG8ePH1a9fPx06dEgxMTEV2tbyYLJ161a1bdtWJ0+eVM2aNZWbm6sePXqUuW5ZZ0xSUlK0Z88excXFWVmmo3i9XuXl5albt25yu912l+M39E3fQW3tWrnLCB\/eTz6RWrWyoSD\/Crnj\/atQ7bugoECJiYmVCiaWXsqRpCZNmmjz5s06ePCg3nzzTWVnZ2vVqlVlnjHxeDzyeDyllrvd7pA6oMXoO7TQd5B78UVJkpHkkmTCwuQ6c0bu8HApFPr\/Vcgc73OEWt+X0qvlwSQiIsI3\/NqmTRutX79eL774oqZOnWr1rgHAGXJzpYULf\/n3xo21uWtXtfj0U7m+\/15KSLC3NsBh\/P4cE2NMics1ABDUtm+XHn74l38fOVKn\/\/lP7b7pJhX9\/e\/Srl1ScrKt5QFOY+kZk5EjRyorK0spKSk6cuSI5s2bp5UrV2rJkiVW7hYAnOHECalvX+noUaljR2n8eOnMmV++53JJERG2lgc4kaXB5Mcff9T999+vPXv2KDY2Vi1atNCSJUvUrVs3K3cLAM4wfLi0Zcsvl2tyc6Vq1f4dTACUydJgMn36dCvfHgCcKzdXmjbtlzMjc+ZIiYl2VwQEBP5WDgBUtbPnSkaPlrp2tbceIIAQTACgKp07V\/LHP9pdERBQCCYAUJXKmisBUG4EEwCoKsyVAJeMYAIAVYG5EqBKEEwA4FIxVwJUGYIJAFwq5kqAKkMwAYBLwVwJUKUIJgBQWcyVAFWOYAIAlcFcCWAJggkAVAZzJYAlCCYAUFHMlQCWIZgAQEUwVwJYimACAOXFXAlgOYIJAJQXcyWA5QgmAFAezJUAfkEwAYCLYa4E8BuCCQBcCHMlgF8RTADgQpgrAfyKYAIA58NcCeB3BBMAKAtzJYAtCCYAcC7mSgDbEEwA4FzMlQC2IZgAwNmYKwFsRTABgGLMlQC2I5gAgMRcCeAQBBMAkJgrARyCYAIAzJUAjkEwARDamCsBHIVgAiB0MVcCOA7BBEDoYq4EcByCCYDQxFwJ4EgEEwChh7kSwLEIJgBCC3MlgKMRTACEFuZKAEcjmAAIHcyVAI5HMAEQGpgrAQICwQRA8GOuBAgYBBMAwY+5EiBgEEwABDfmSoCAQjABELyYKwECDsEEQHBirgQISAQTAMGJuRIgIBFMAAQf5kqAgEUwARBcmCsBAhrBBEDwYK4ECHgEEwDBg7kSIOARTAAEB+ZKgKBAMAEQ+JgrAYIGwQRAYGOuBAgqBBMAgY25EiCoWBpMJk6cqGuuuUbR0dFKSEhQ7969tX37dit3CSCUMFcCBB1Lg8mqVauUk5OjdevWKS8vT6dPn9aNN96oY8eOWblbAKGAuRIgKIVb+eZLliwp8XrGjBlKSEjQxo0b9dvf\/rbU+oWFhSosLPS9Pnz4sCTJ6\/XK6\/VaWaqjFPcaSj1L9E3fFXDihML79JHr6FGdycxU0ZNPSgHy+XG86TsUXEq\/LmOMqcJaLmjHjh1q3Lixtm7dqquuuqrU98eOHatx48aVWp6bm6uoqCh\/lAggALScNElpy5bpZGysVr7wggrr1LG7JABnOX78uPr166dDhw4pJiamQtv6LZgYY3Trrbfq559\/1po1a8pcp6wzJikpKdqzZ4\/i4uL8UaYjeL1e5eXlqVu3bnK73XaX4zf0Td\/l4Zo7V+HZ2TIul4ref1+mSxcLq6x6HG\/6DgUFBQVKTEysVDCx9FLO2YYMGaItW7bo448\/Pu86Ho9HHo+n1HK32x1SB7QYfYcW+i6H7dulnBxJkmv0aIV3725hZdbieIeWUOv7Unr1SzAZOnSo3n77ba1evVrJycn+2CWAYMPzSoCQYGkwMcZo6NChWrRokVauXKn09HQrdwcgmPG8EiAkWBpMcnJylJubq7feekvR0dHau3evJCk2NlaRkZFW7hpAMOF5JUDIsPQ5JpMnT9ahQ4fUsWNHJSYm+r7mz59v5W4BBBOeVwKEFMsv5QBApTFXAoQc\/lYOAOdirgQIOQQTAM7EXAkQkggmAJyHuRIgZBFMADgLcyVASCOYAHAW5kqAkEYwAeAczJUAIY9gAsAZmCsBIIIJACdgrgTArwgmAOzHXAmAXxFMANjKNXcucyUAfAgmAGxT8\/vvVS0n55cXzJUAEMEEgF1OnFCbP\/9ZLuZKAJyFYALAFmGPPabYXbtkmCsBcBaCCQD\/y81VtVdflXG5VDRrFnMlAHwIJgD866znlWzv21emSxebCwLgJAQTAP5z1vNKzmRmanvfvnZXBMBhCCYA\/Oes55UUzZ7NXAmAUggmAPyDv4MDoBwIJgCsx9\/BAVBOBBMA1uLv4ACoAIIJAGvxd3AAVADBBIB1mCsBUEEEEwDWYK4EQCUQTABUPeZKAFQSwQRA1WOuBEAlEUwAVC3mSgBcAoIJgKrDXAmAS0QwAVA1mCsBUAUIJgCqBnMlAKoAwQTApWOuBEAVIZgAuDTMlQCoQgQTAJXHXAmAKkYwAVB5zJUAqGIEEwCVw1wJAAsQTABUHHMlACxCMAFQMcyVALAQwQRAxTBXAsBCBBMA5cdcCQCLEUwAlA9zJQD8gGAC4OKYKwHgJwQTABfHXAkAPyGYALgw5koA+BHBBMD5MVcCwM8IJgDKxlwJABsQTACUjbkSADYgmAAojbkSADYhmAAoibkSADYimAD4N+ZKANiMYALg35grAWAzggmAXzBXAsABCCYAmCsB4BiWBpPVq1erV69eSkpKksvl0uLFi63cHYDKYK4EgINYGkyOHTumli1b6qWXXrJyNwAuBXMlABwk3Mo3z8rKUlZWVrnXLywsVGFhoe\/14cOHJUler1der7fK63Oq4l5DqWeJvu3o2zV3rsKnTZNxuVQ0a5ZMfLzkpzo43vQdCkK978pwGWNMFdZy\/h25XFq0aJF69+593nXGjh2rcePGlVqem5urqKgoC6sDQk\/N779X5mOPKfzkSX15113afs89dpcEIEgcP35c\/fr106FDhxQTE1OhbR0VTMo6Y5KSkqI9e\/YoLi7OD1U6g9frVV5enrp16ya32213OX5D337s+8QJhXfoINfWrTqTmamiJUv8fgmH403foSBU+y4oKFBiYmKlgomll3IqyuPxyOPxlFrudrtD6oAWo+\/Q4te+hwyRtm6VEhIUNneuwqpX989+y8DxDi30HRoupVduFwZCDc8rAeBgBBMglPC8EgAOZ+mlnKNHj2rHjh2+1zt37tTmzZtVp04dNWzY0MpdAzgXzysBEAAsDSYbNmxQp06dfK9HjBghScrOztbMmTOt3DWAc\/G8EgABwNJg0rFjR\/npph8AF8JcCYAAwYwJEOyYKwEQQAgmQDBjrgRAgCGYAMGMuRIAAYZgAgQr5koABCCCCRCMmCsBEKAIJkCwYa4EQAAjmADBhrkSAAGMYAIEE+ZKAAQ4ggkQLJgrARAECCZAMGCuBECQIJgAwYC5EgBBgmACBDrmSgAEEYIJEMiYKwEQZAgmQKBirgRAECKYAIGKuRIAQYhgAgQi5koABCmCCRBomCsBEMQIJkAgYa4EQJAjmACBhLkSAEGOYAIECuZKAIQAggkQCJgrARAiCCaA0zFXAiCEEEwAp2OuBEAIIZgATsZcCYAQQzABnIq5EgAhiGACOBFzJQBCFMEEcCLmSgCEKIIJ4DTMlQAIYQQTwEmYKwEQ4ggmgFMwVwIABBPAKcIee4y5EgAhj2ACOECDVatU7dVXmSsBEPIIJoDdtm\/XbyZP\/uXfmSsBEOLC7S4ACGknTii8Xz+5Tp7UmcxMhTFXAiDEccYEsNPw4XJt3aqTsbEqmj2buRIAIY9gAtjl1+eVGJdLn40YwVwJAIhgAtjjrOeVnBk5Uj+1bGlzQQDgDAQTwN\/OeV7Jmf\/6L7srAgDHIJgA\/sbfwQGA8yKYAP7E38EBgAsimAD+wt\/BAYCLIpgA\/sDfwQGAciGYAP7AXAkAlAvBBLAacyUAUG4EE8BKzJUAQIUQTACrMFcCABVGMAGswlwJAFQYwQSwAnMlAFApBBOgqjFXAgCVRjABqhJzJQBwSQgmQFVirgQALolfgsmkSZOUnp6u6tWrq3Xr1lqzZo0\/dgv4F3MlAHDJLA8m8+fP1\/DhwzVq1Cht2rRJN9xwg7KyspSfn2\/1rgH\/Ya4EAKpEuNU7eP755zVgwAD9\/ve\/lyT95S9\/0dKlSzV58mRNnDixxLqFhYUqLCz0vT58+LAkyev1yuv1Wl2qYxT3Gko9SwHc94kTCu\/TR66jR3UmM1NFTz4pVaCHgO37EtE3fYeCUO+7MlzGGFOFtZRw6tQpRUVF6Y033tBtt93mW\/7II49o8+bNWrVqVYn1x44dq3HjxpV6n9zcXEVFRVlVJnBJWk6apLRly3QyNlYrX3hBhXXq2F0SANjq+PHj6tevnw4dOqSYmJgKbWvpGZP9+\/erqKhI9erVK7G8Xr162rt3b6n1n3zySY0YMcL3+vDhw0pJSVGnTp0UFxdnZamO4vV6lZeXp27dusntdttdjt8EYt+uuXMVvmyZjMul8Hnz1KVLlwq\/RyD2XRXom75DQaj2XVBQUOltLb+UI0kul6vEa2NMqWWS5PF45PF4Si13u90hdUCL0bfDbd8u5eRIklyjRyu8e\/dLeruA6buK0Xdooe\/QcCm9Wjr8Gh8fr2rVqpU6O7Jv375SZ1GAgMLzSgDAEpYGk4iICLVu3Vp5eXkllufl5aldu3ZW7hqwFs8rAQBLWH4pZ8SIEbr\/\/vvVpk0btW3bVtOmTVN+fr4GDhxo9a4Ba\/C8EgCwjOXB5K677lJBQYHGjx+vPXv26KqrrtL777+v1NRUq3cNVD2eVwIAlvLL8OvgwYM1ePBgf+wKsA5zJQBgOf5WDlBezJUAgOUIJkB5MFcCAH5BMAEuhrkSAPAbgglwIcyVAIBfEUyAC2GuBAD8imACnA9zJQDgdwQToCzMlQCALQgmwLmYKwEA2xBMgHMxVwIAtiGYAGdjrgQAbEUwAYoxVwIAtiOYABJzJQDgEAQTQGKuBAAcgmACMFcCAI5BMEFoY64EAByFYILQxVwJADgOwQShi7kSAHAcgglCE3MlAOBIBBOEHuZKAMCxCCYILcyVAICjEUwQWpgrAQBHI5ggdDBXAgCORzBBaGCuBAACAsEEwY+5EgAIGAQTBD\/mSgAgYBBMENyYKwGAgEIwQfBirgQAAg7BBMGJuRIACEgEEwQn5koAICARTBB8mCsBgIBFMEFwYa4EAAIawQTBg7kSAAh4BBMED+ZKACDgEUwQHJgrAYCgQDBB4GOuBACCBsEEgY25EgAIKgQTBDbmSgAgqBBMELiYKwGAoEMwQWBirgQAghLBBIGHuRIACFoEEwQe5koAIGgRTBBYmCsBgKBGMEHgYK4EAIIewQSBgbkSAAgJBBMEBuZKACAkEEzgfMyVAEDIIJjA2ZgrAYCQQjCBczFXAgAhh2AC52KuBABCDsEEzsRcCQCEpHC7CwCKuTZuVLvRo+U6eZK5EgAIUZaeMXn66afVrl07RUVFqVatWlbuCkHA9frrqrt1q6rl5DBXAgAhytJgcurUKfXp00eDBg2ycjcIZLt3Sxs3Sp99prAFCyRJroICqXZt6Q9\/kP71L5sLBAD4k6WXcsaNGydJmjlzZrnWLywsVGFhoe\/14cOHJUler1der7fK63Oq4l5DoWd3WlqpZUaS6+efpe7dJUneU6f8W5SfhdLxPht903coCPW+K8NljDFVWEuZZs6cqeHDh+vgwYMXXG\/s2LG+MHO23NxcRUVFWVQd7JS8apVa\/fWvCisqKvW9M9WqadOwYfpXZqYNlQEAKuv48ePq16+fDh06pJiYmApt66hgUtYZk5SUFO3Zs0dxcXEWV+kcXq9XeXl56tatm9xut93lWG\/TJrmvu67UYu8nn0itWtlQkH+F3PH+FX3TdygI1b4LCgqUmJhYqWBS4Us55zurcbb169erTZs2FX1reTweeTyeUsvdbndIHdBiIdN3+C8\/hiYsTK4zZ3z\/dIeHS6HQ\/69C5nifg75DC32HhkvptcLBZMiQIbr77rsvuE5aGXMDwHklJEj168s0aKB\/XHutWnz6qVzff\/\/LcgBASKlwMImPj1d8fLwVtSBUJSdLu3apyOXS7g8+0JV\/+YvCjJHKOHsGAAhult6Vk5+frwMHDig\/P19FRUXavHmzJKlRo0aqWbOmlbtGoPF4pOIpbpdLioiwtx4AgC0sDSZ\/\/OMfNWvWLN\/rVr8OMq5YsUIdO3a0ctcAACAAWfqAtZkzZ8oYU+qLUAIAAMrCH\/EDAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOEW53ARdijJEkHTlyRG632+Zq\/Mfr9er48eM6fPgwfYcA+qbvUEDfodX3kSNHJP3793hFODqYFBQUSJLS09NtrgQAAFRUQUGBYmNjK7SNo4NJnTp1JEn5+fkVbiyQHT58WCkpKfruu+8UExNjdzl+Q9\/0HQrom75DwaFDh9SwYUPf7\/GKcHQwCQv7ZQQmNjY2pA5osZiYGPoOIfQdWug7tIRq38W\/xyu0jQV1AAAAVArBBAAAOIajg4nH49GYMWPk8XjsLsWv6Ju+QwF903cooO+K9+0ylbmXBwAAwAKOPmMCAABCC8EEAAA4BsEEAAA4BsEEAAA4BsEEAAA4RsAEk6efflrt2rVTVFSUatWqZXc5lpo0aZLS09NVvXp1tW7dWmvWrLG7JEutXr1avXr1UlJSklwulxYvXmx3SX4xceJEXXPNNYqOjlZCQoJ69+6t7du3212W5SZPnqwWLVr4noTZtm1bffDBB3aX5VcTJ06Uy+XS8OHD7S7FcmPHjpXL5SrxVb9+fbvL8ovvv\/9e9913n+Li4hQVFaXf\/OY32rhxo91lWSotLa3U8Xa5XMrJySn3ewRMMDl16pT69OmjQYMG2V2KpebPn6\/hw4dr1KhR2rRpk2644QZlZWUpPz\/f7tIsc+zYMbVs2VIvvfSS3aX41apVq5STk6N169YpLy9Pp0+f1o033qhjx47ZXZqlkpOT9cwzz2jDhg3asGGDOnfurFtvvVXbtm2zuzS\/WL9+vaZNm6YWLVrYXYrfXHnlldqzZ4\/va+vWrXaXZLmff\/5Z7du3l9vt1gcffKDPP\/9c\/\/M\/\/xP0\/2O9fv36Esc6Ly9PktSnT5\/yv4kJMDNmzDCxsbF2l2GZa6+91gwcOLDEsqZNm5o\/\/OEPNlXkX5LMokWL7C7DFvv27TOSzKpVq+wuxe9q165tXn31VbvLsNyRI0dM48aNTV5ensnMzDSPPPKI3SVZbsyYMaZly5Z2l+F3TzzxhOnQoYPdZdjukUceMRkZGebMmTPl3iZgzpiEglOnTmnjxo268cYbSyy\/8cYb9fe\/\/92mquAvhw4dkqRK\/TXOQFVUVKR58+bp2LFjatu2rd3lWC4nJ0c9e\/ZU165d7S7Fr77++mslJSUpPT1dd999t7799lu7S7Lc22+\/rTZt2qhPnz5KSEhQq1at9Morr9hdll+dOnVKr7\/+uh588EG5XK5yb0cwcZD9+\/erqKhI9erVK7G8Xr162rt3r01VwR+MMRoxYoQ6dOigq666yu5yLLd161bVrFlTHo9HAwcO1KJFi9SsWTO7y7LUvHnz9Nlnn2nixIl2l+JX1113nWbPnq2lS5fqlVde0d69e9WuXTsVFBTYXZqlvv32W02ePFmNGzfW0qVLNXDgQA0bNkyzZ8+2uzS\/Wbx4sQ4ePKj+\/ftXaDtbg0lZQ1Hnfm3YsMHOEm1xbrI0xlQobSLwDBkyRFu2bNHcuXPtLsUvmjRpos2bN2vdunUaNGiQsrOz9fnnn9tdlmW+++47PfLII3r99ddVvXp1u8vxq6ysLN1xxx1q3ry5unbtqvfee0+SNGvWLJsrs9aZM2d09dVXa8KECWrVqpUefvhhPfTQQ5o8ebLdpfnN9OnTlZWVpaSkpAptF25RPeUyZMgQ3X333RdcJy0tzT\/FOEB8fLyqVatW6uzIvn37Sp1FQfAYOnSo3n77ba1evVrJycl2l+MXERERatSokSSpTZs2Wr9+vV588UVNnTrV5sqssXHjRu3bt0+tW7f2LSsqKtLq1av10ksvqbCwUNWqVbOxQv+pUaOGmjdvrq+\/\/truUiyVmJhY6izgFVdcoTfffNOmivxr9+7dWr58uRYuXFjhbW0NJvHx8YqPj7ezBEeJiIhQ69atlZeXp9tuu823PC8vT7feequNlcEKxhgNHTpUixYt0sqVK5Wenm53SbYxxqiwsNDuMizTpUuXUneiPPDAA2ratKmeeOKJkAklklRYWKgvvvhCN9xwg92lWKp9+\/albv\/\/6quvlJqaalNF\/jVjxgwlJCSoZ8+eFd7W1mBSEfn5+Tpw4IDy8\/NVVFSkzZs3S5IaNWqkmjVr2ltcFRoxYoTuv\/9+tWnTRm3bttW0adOUn5+vgQMH2l2aZY4ePaodO3b4Xu\/cuVObN29WnTp11LBhQxsrs1ZOTo5yc3P11ltvKTo62nemLDY2VpGRkTZXZ52RI0cqKytLKSkpOnLkiObNm6eVK1dqyZIldpdmmejo6FKzQzVq1FBcXFzQzxQ9\/vjj6tWrlxo2bKh9+\/bpqaee0uHDh5WdnW13aZZ69NFH1a5dO02YMEF9+\/bVp59+qmnTpmnatGl2l2a5M2fOaMaMGcrOzlZ4eCVihkV3CFW57OxsI6nU14oVK+wurcq9\/PLLJjU11URERJirr7466G8fXbFiRZnHNjs72+7SLFVWz5LMjBkz7C7NUg8++KDv57tu3bqmS5cuZtmyZXaX5XehcrvwXXfdZRITE43b7TZJSUnm9ttvN9u2bbO7LL945513zFVXXWU8Ho9p2rSpmTZtmt0l+cXSpUuNJLN9+\/ZKbe8yxphLjkcAAABVgNuFAQCAYxBMAACAYxBMAACAYxBMAACAYxBMAACAYxBMAACAYxBMAACAYxBMAACAYxBMAACAYxBMAACAYxBMAACAY\/w\/MefahrL11z4AAAAASUVORK5CYII=#fixme\" alt=\"image\" \/><\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<div class=\"jp-Cell jp-MarkdownCell jp-Notebook-cell\">\r\n<div class=\"jp-Cell-inputWrapper\">\r\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\"><\/div>\r\n<div class=\"jp-InputArea jp-Cell-inputArea\">\r\n<div class=\"jp-InputPrompt jp-InputArea-prompt\"><\/div>\r\n<div class=\"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput\" data-mime-type=\"text\/markdown\">\r\n<h2 id=\"Wait,-isn't-that-a-vector?\">Wait, isn't that a vector?<a class=\"anchor-link\" href=\"#Wait,-isn't-that-a-vector?\">\u00b6<\/a><\/h2>\r\nYes. Yes it is. Hopefully, you can see that the distance between 2 points is the magnitude of the vector found by subtracting one from the other. Phew!\r\n\r\nBut what this (should) lead to is... Are there different ways of finding distance? What if you lived in Manhattan, and needed to drive - then calculating a diagonal distance doesn't make much sense.\r\n\r\nI'm not going through a formal definition, but we can develop math with the basic idea of \"distance\", then sub in any way of calculating distance that we choose.\r\n<h3 id=\"Definition-of-%22Distance%22\">Definition of \"Distance\"<a class=\"anchor-link\" href=\"#Definition-of-%22Distance%22\">\u00b6<\/a><\/h3>\r\n<ul>\r\n \t<li>Commutes: [latex]\\|a-b\\| = \\|b-a\\|[\/latex], that is, the order doesn't matter.<\/li>\r\n \t<li>The triangle inequality: [latex]\\|a-b\\| \\leq \\|a\\|+\\|b\\|[\/latex]<\/li>\r\n \t<li>Zero is special: if [latex]\\|a-b\\| =0[\/latex], then [latex]a=b[\/latex].<\/li>\r\n<\/ul>\r\n<h2 id=\"Manhattan-Distance-\/-Taxicab-metric-\/-L1-Norm\">Manhattan Distance \/ Taxicab metric \/ L1-Norm<a class=\"anchor-link\" href=\"#Manhattan-Distance-\/-Taxicab-metric-\/-L1-Norm\">\u00b6<\/a><\/h2>\r\nDepending on where you read, this distance measure has many names. I'm not going through a formal definition, but we can develop math with the basic idea of \"distance\", then sub in any way of calculating distance that we choose.\r\n\r\nHere, Instead of squaring and square rooting, we are going to take the absolute value:\r\n\r\n$$\\|(x_2, y_2)-(x_1, y_1)\\|= d = |x_2-x_1|+|y_2-y_1|$$\r\n\r\nso:\r\n\r\n$$\\|(4, 3)-(3,-1)\\|= d = |4-1|+|3+1|= 3+4 = 7$$\r\n\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<div class=\"jp-Cell jp-CodeCell jp-Notebook-cell\">\r\n<div class=\"jp-Cell-inputWrapper\">\r\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\"><\/div>\r\n<div class=\"jp-InputArea jp-Cell-inputArea\">\r\n<div class=\"jp-InputPrompt jp-InputArea-prompt\">In\u00a0[4]:<\/div>\r\n<div class=\"jp-CodeMirrorEditor jp-Editor jp-InputArea-editor\" data-type=\"inline\">\r\n<div class=\"CodeMirror cm-s-jupyter\">\r\n<div class=\"highlight hl-ipython3\">\r\n<pre><span class=\"c1\">## Can I do this in Python?  Sure!  set ord = 1<\/span>\r\n\r\n<span class=\"nb\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">\"The Manhattan norm is \"<\/span><span class=\"p\">,<\/span><span class=\"n\">norm<\/span><span class=\"p\">(<\/span><span class=\"n\">a<\/span><span class=\"o\">-<\/span><span class=\"n\">b<\/span><span class=\"p\">,<\/span> <span class=\"nb\">ord<\/span> <span class=\"o\">=<\/span><span class=\"mi\">1<\/span><span class=\"p\">))<\/span>\r\n\r\n<span class=\"c1\">#graphically:<\/span>\r\n\r\n\r\n\r\n<span class=\"c1\">##put in our old distance in red<\/span>\r\n<span class=\"n\">plt<\/span><span class=\"o\">.<\/span><span class=\"n\">plot<\/span><span class=\"p\">([<\/span><span class=\"n\">a<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">],<\/span><span class=\"n\">b<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">]],<\/span> <span class=\"p\">[<\/span><span class=\"n\">a<\/span><span class=\"p\">[<\/span><span class=\"mi\">1<\/span><span class=\"p\">],<\/span><span class=\"n\">b<\/span><span class=\"p\">[<\/span><span class=\"mi\">1<\/span><span class=\"p\">]],<\/span> <span class=\"s1\">'red'<\/span><span class=\"p\">,<\/span> <span class=\"n\">linestyle<\/span><span class=\"o\">=<\/span><span class=\"s1\">'-'<\/span><span class=\"p\">,<\/span> <span class=\"n\">marker<\/span><span class=\"o\">=<\/span><span class=\"s1\">'*'<\/span><span class=\"p\">)<\/span>\r\n\r\n<span class=\"c1\">## first we go along the x axis, 3 blocks  (in blue)<\/span>\r\n<span class=\"n\">plt<\/span><span class=\"o\">.<\/span><span class=\"n\">quiver<\/span><span class=\"p\">(<\/span><span class=\"n\">b<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">],<\/span> <span class=\"n\">b<\/span><span class=\"p\">[<\/span><span class=\"mi\">1<\/span><span class=\"p\">],<\/span> <span class=\"p\">(<\/span><span class=\"n\">a<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">]<\/span><span class=\"o\">-<\/span><span class=\"n\">b<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">]),<\/span> <span class=\"mi\">0<\/span><span class=\"p\">,<\/span> <span class=\"n\">color<\/span><span class=\"o\">=<\/span><span class=\"s1\">'b'<\/span><span class=\"p\">,<\/span> <span class=\"n\">units<\/span><span class=\"o\">=<\/span><span class=\"s1\">'xy'<\/span><span class=\"p\">,<\/span> <span class=\"n\">scale<\/span><span class=\"o\">=<\/span><span class=\"mi\">1<\/span><span class=\"p\">)<\/span> \r\n\r\n<span class=\"c1\">##then we go up 4 blocks:<\/span>\r\n<span class=\"c1\">#plt.quiver(b[0], b[1], (a[0]-b[0]), 0, color='b', units='xy', scale=1) <\/span>\r\n\r\n<span class=\"n\">plt<\/span><span class=\"o\">.<\/span><span class=\"n\">quiver<\/span><span class=\"p\">(<\/span><span class=\"n\">a<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">],<\/span><span class=\"n\">b<\/span><span class=\"p\">[<\/span><span class=\"mi\">1<\/span><span class=\"p\">],<\/span> <span class=\"mi\">0<\/span><span class=\"p\">,(<\/span><span class=\"n\">a<\/span><span class=\"p\">[<\/span><span class=\"mi\">1<\/span><span class=\"p\">]<\/span><span class=\"o\">-<\/span><span class=\"n\">b<\/span><span class=\"p\">[<\/span><span class=\"mi\">1<\/span><span class=\"p\">]),<\/span>  <span class=\"n\">color<\/span><span class=\"o\">=<\/span><span class=\"s1\">'g'<\/span><span class=\"p\">,<\/span> <span class=\"n\">units<\/span><span class=\"o\">=<\/span><span class=\"s1\">'xy'<\/span><span class=\"p\">,<\/span> <span class=\"n\">scale<\/span><span class=\"o\">=<\/span><span class=\"mi\">1<\/span><span class=\"p\">)<\/span> \r\n\r\n\r\n<span class=\"n\">plt<\/span><span class=\"o\">.<\/span><span class=\"n\">axis<\/span><span class=\"p\">(<\/span><span class=\"s1\">'equal'<\/span><span class=\"p\">)<\/span>  <span class=\"c1\">## This is important to get the display correct<\/span>\r\n<span class=\"n\">plt<\/span><span class=\"o\">.<\/span><span class=\"n\">title<\/span><span class=\"p\">(<\/span><span class=\"s1\">'Manhattan Distance between 2 points'<\/span><span class=\"p\">)<\/span> \r\n\r\n<span class=\"n\">plt<\/span><span class=\"o\">.<\/span><span class=\"n\">xticks<\/span><span class=\"p\">(<\/span><span class=\"nb\">range<\/span><span class=\"p\">(<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"p\">,<\/span><span class=\"mi\">8<\/span><span class=\"p\">))<\/span>\r\n<span class=\"n\">plt<\/span><span class=\"o\">.<\/span><span class=\"n\">yticks<\/span><span class=\"p\">(<\/span><span class=\"nb\">range<\/span><span class=\"p\">(<\/span><span class=\"o\">-<\/span><span class=\"mi\">5<\/span><span class=\"p\">,<\/span><span class=\"mi\">8<\/span><span class=\"p\">))<\/span>\r\n\r\n\r\n<span class=\"c1\"># Show plot with grid <\/span>\r\n<span class=\"n\">plt<\/span><span class=\"o\">.<\/span><span class=\"n\">grid<\/span><span class=\"p\">()<\/span> \r\n\r\n<span class=\"c1\">##always important to actually display!<\/span>\r\n<span class=\"n\">plt<\/span><span class=\"o\">.<\/span><span class=\"n\">show<\/span><span class=\"p\">()<\/span> \r\n<\/pre>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<div class=\"jp-Cell-outputWrapper\">\r\n<div class=\"jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser\"><\/div>\r\n<div class=\"jp-OutputArea jp-Cell-outputArea\">\r\n<div class=\"jp-OutputArea-child\">\r\n<div class=\"jp-OutputPrompt jp-OutputArea-prompt\"><\/div>\r\n<div class=\"jp-RenderedText jp-OutputArea-output\" data-mime-type=\"text\/plain\">\r\n<pre>The Manhattan norm is  7.0\r\n<\/pre>\r\n<\/div>\r\n<\/div>\r\n<div class=\"jp-OutputArea-child\">\r\n<div class=\"jp-OutputPrompt jp-OutputArea-prompt\"><\/div>\r\n<div class=\"jp-RenderedImage jp-OutputArea-output\"><img class=\"jp-needs-light-background\" src=\"image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAXYAAAEICAYAAABLdt\/UAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+\/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAa0ElEQVR4nO3dfZRcdZ3n8fcnzyHdJAP0hECzRILJ4UHlIUIclzGNuPIoA6ssMKODA5MlC3PgCGdgRPeAMDJG1sF1GR4Eh\/gATFB0ADkijGmYjCAkBIEQkIQBiSQgAQIdCSHp7\/5xb4dKU91VSd3ue+vW53VOnVTVvfWrb9+6\/a1ffe7tiiICMzMrjxF5F2BmZtlyYzczKxk3djOzknFjNzMrGTd2M7OScWM3MysZN\/YmIuliSd\/Pu44sSbpG0pfzrmN7SJotaVXedZSBpB5Je+VdR1m4sWdE0nOSNkrapd\/9j0oKSVPzqWxLHadJWtTvvhslXTaEz\/mcpLckvSnpdUm\/lHSmpC37XUScGRGX1jnWEUNV63BrhjcFScdIWpS+dmskfVtS+1A8V0S0RcSzddYVkvYeijrKwo09W\/8JnNJ3Q9IHgPH5lVMIx0VEO7An8A\/ABcAN+ZZkdZoIXAbsBuwDdAJfz7Uiq09E+JLBBXgO+BLwcMV9VwAXAQFMTe87BlgKvAG8AFxcsf7UdN2\/BH4LvAJcVLH8YmAB8F3gTWAZMLNi+YXAynTZk8AJ6f37ABuAzUAP8DowB3gH2Jjed8dgY6TLTgMWpT\/XayRvZEfV2CZH9LvvEKAX2D+9fSNwWXp9F+DOtL5XgX8nmXx8L33MW2mtf5uufyuwBlgH3A\/sV\/E8NwJXAT9Nf5ZfAdMqlu8H3JM+z0vAF9P7R1Rsg7Xp9t5pgJ9vNrAK+GL6Wj0H\/HnF8rHptvpt+hzXkLzRT0h\/lt705+khaZ5vAbukj\/0SsAnYMb19GXDlYONWPO+xwKPpdvwl8MF+r8n5wGPpdvsXYFyd+\/iJwOM1Xu+\/S\/eb14B\/rhwb+GtgRbrNbwd2q1gWwN61Xrv0dQ5gfbrd\/sdA+03ePSHXfpR3AWW5pDv1EcDTJI10JEnj3pOtG\/ts4ANpA\/lg+ov5Z+myqem6304bwIeAt4F90uUXkzToo9PxLwcerKjhM2mDGJHu8OuBKemy04BF\/Wq+kbSpbsMY76S\/oCOBucCLgAbbJlXu\/y0wt38N6c9zDTA6vRzWN3a1sYC\/AtpJGt2VwKP9frZXSd5IRgE\/AG5Jl7UDq4HzgHHp7UPTZecCD5LMTscC1wI3D\/DzzSZpvt9I1\/1Yur1mpMuvJGlgO6XPcQdwecVjV\/Ub737gv6fXf07y5nJUxbIT6hj3IOBl4ND0NfrLdNuNrdiOD6Wv8U7AcuDMOvfxK\/u24SCv9xPAHunY\/1Hx2h5O8uZ3ULqtvgXcX\/HY\/o296mvXf91a+02rXnIvoCwX3m3sX0p3tCNJZoSjqGjsVR53JfCP6fWp6bqdFcsfAk5Or18M3FuxbF\/grUFqehQ4Pr1+GnU09jrGWFGxbIe03l0H2yZV7n+Q9JMIWzf2rwD\/WvlLW2usiuWT0lomVox7fcXyo4Gn0uunAEsHGGc58PGK21NI3sxGVVl3Nkljn1Bx3wLgy4BImnzlp4SPAP9Z8dj+jf1S4P+m+8wa4ByS+Goc6Wy+jnGvBi7tN+7TwMcqtuNfVCybB1xTx\/79CZJZ+PQavwNnVtw+GliZXr8BmFexrC3drlPT2\/0be9XXrv+6tfabVr04Y8\/e94BTSZrgd\/svlHSopIWSfi9pHXAmyS9spTUV1\/9A8ksw0LJxkkalY38uPVj7uqTXgf2rjD2oOsbY8vwR8Yf0amV99didZEbW39dJPqr\/XNKzki4cpM6Rkv5B0kpJb5A0FQaqla234x4ks+Fq9gR+XPHzLyeJsCYPsP5rEbG+4vbzJLPhDpI3viUVY\/0svX8g95E0\/IOAx0kmBh8DZpG8ob5Sx7h7Auf1LUuX75HW1Gew\/es9JM0CbgI+HRG\/GWxdkk+pffq2Bem\/z\/ctiIgekqhr9wHG2ZYa695vWoUbe8Yi4nmS7Plo4LYqq9xE8jF6j4iYSPIRUo0+r6Q9SSKcs4GdI2ISycfivrGjWrnbOEbDJH2Y5Jd5Uf9lEfFmRJwXEXsBxwFfkPTxAeo\/FTie5FPSRJJPO9RZ6wvAtEGWHRURkyou4yLidwOs\/0eSJlTc\/i8k8dQrJLPs\/SrGmRgRfQ2q2uvxS2AGcAJwX0Q8mY53DEnTp45xXwD+vl\/9O0TEzbU2SjWSDiTZX\/8qIv6tjofsUXG9b1uQ\/rtnxbgTgJ2BgbZr3WrsNy3JjX1onA4c3m8m16cdeDUiNkg6hKRBZWECSbP4PYCkz5PMtvu8BHRKGtPvvspzh2uNsd0k7SjpWOAW4PsR8XiVdY6VtLckkRxc3pxeqtXaTnL8YS3JDPar21DOncCuks6VNFZSu6RD02XXAH+fvskhqUPS8TXGu0TSGEmHkRy4vDUiekneJP9R0h+nY+0u6ZMVP8\/Okib2DZJ+AloCnMW7jfyXwP\/su13HuN8Gzkw\/GUrShPS0xW0+TVHS\/iSfBv4mIu6o82FnSeqUtBPJQeV\/Se+\/Cfi8pAMkjSV5vX4VEc9ta1302xdq7DctyY19CETEyohYPMDi\/wV8RdKbwP8myWSzeM4ngf8DPECy43+A5OBVn1+QnEWzRtIr6X03APumH9l\/UscY2+OO9Gd9geQMoW8Anx9g3fcD95Kc7fAA8E8R0Z0uuxz4Ulrr+SQx1\/MkM74nSXL7ukTEmySZ8XEkH\/mfAbrSxd8kmaH+PK37QZIDkQNZQ5I9v0hykO\/MiHgqXXYBSUTwYBoX3UsyIydd52bg2fRn6oss7iM5APhQxe12koOn1DHuYpKD2\/8vrWsFSSy4Pc4jiXhuSP+AqEfSshqPuYnkwO+z6eWytK5\/Izn28COSA9fTgJO3s66LgfnpdjuJwfebltR3xoGZWUMkPQecERH35l1Lq\/OM3cysZNzYzcxKxlGMmVnJeMZuZlYyo\/J40kmTJsXeexf\/y9nWr1\/PhAkTaq+YM9eZnWaoEVxn1pqlziVLlrwSEYP9kRuQU2OfPHkyixcPdDZgcXR3dzN79uy8y6jJdWanGWoE15m1ZqlT0vO113IUY2ZWOm7sZmYl48ZuZlYybuxmZiXjxm5mVjJu7GZmJePGbmZWMm7sZmYl48ZuZlYybuxmZiXjxm5mVjJu7GZmJePGbmZWMm7sZmYl48ZuZlYybuxmZiXjxm5mVjJu7GZmJePGbmZWMm7sZmYl03BjlzRO0kOSfi1pmaRLsijMzAawejUHnHMOrFmTdyVWUFnM2N8GDo+IDwEHAEdKmpXBuGZWzaWXMvHxx+ErX8m7Eiuohht7JHrSm6PTSzQ6rpn1M348SHD11SgCrr46uT1+fN6VWcEoovEeLGkksATYG7gqIi6oss4cYA5AR0fHwQsWLGj4eYdaT08PbW1teZdRk+vMTpFrHLN2LdOuuoo\/7u5GEWweO5ZXDjuMlXPnsnGnnfIur6oib89KzVJnV1fXkoiYWXPFiMjsAkwCFgL7D7be9OnToxksXLgw7xLq4jqzU\/ga99svAmLTqJERI0ZEzJ2bd0WDKvz2TDVLncDiqKMXj8ry3SQiXpfUDRwJPJHl2GYt79ZbYdkyXt57N34x53Oc\/NwbsHp13lVZATXc2CV1AO+kTX08cATwtYYrM7N3rVgBp58Os2bx52eM5cgddmHl6WcwbadpeVdmBZTFWTFTgIWSHgMeBu6JiDszGNfMADZsgJNOglGjWHfjtXS\/+B8A3Pkb\/5pZdVmcFfNYRBwYER+MiP0jwudgmWXp\/PNh6VKYP5+fvbOcTb2bALjjN3fkXJgVlf\/y1KzIbr0VrroKzjsPjjtuq2Z+3\/P3sW7DuhyLs6JyYzcrqopcncsvZ1PvJu565q4tizf1buLulXfnWKAVlRu7WRFV5OrccguMHs0DLzzAaxte22o15+xWTaanO5pZRvpy9dtvhz33BKpn6nc9cxebezczcsTI4a7QCswzdrOi6Zer96nW2Ne+tZYHVj0wnNVZE3BjNyuSfrn6lrtfXcFTrzzFlLYpW+7btW1XAO542mfH2Nbc2M2Kokqu3uexlx7j2mOv5bG5j2257wuzvsDDf\/0w4e\/cs36csZsVRZVcvc+J+5wIwBtvv7HV\/TN3m8nM3Wp\/J5S1Fs\/YzYpggFzdbHu4sZvlbYBc3Wx7ubGb5WmQXN1sezljN8vTILm62fbyjN0sL87VbYi4sZvlwbm6DSE3drPh5lzdhpgzdrPh5lzdhphn7GbDybm6DQM3drPh4lzdhokbu9lwcK5uw8gZu9lwcK5uw8gzdrOh5lzdhpkbu9lQcq5uOXBjNxsqztUtJ87YzYaKc3XLiWfsZkPBubrlyI3dLGvO1S1nbuxmWXKubgXgjN0sS87VrQA8YzfLinN1Kwg3drMsOFe3AnFjN2uUc3UrGGfsZo1yrm4F4xm7WSOcq1sBNdzYJe0haaGk5ZKWSToni8LMCs+5uhVUFlHMJuC8iHhEUjuwRNI9EfFkBmObFZNzdSuwhht7RKwGVqfX35S0HNgdcGO38nKubgWmiMhuMGkqcD+wf0S80W\/ZHGAOQEdHx8ELFizI7HmHSk9PD21tbXmXUZPrzE49NXZ0d7PfJZfwwkknsXLu3GGqLNEbvSxds5TOsZ0wFiZPmDysz7+tmuE1h+aps6ura0lEzKy5YkRkcgHagCXAibXWnT59ejSDhQsX5l1CXVxndmrW+MwzEe3tEbNmRWzcOCw1VVq3YV1wMXHFTVfEvEXzhv35t1UzvOYRzVMnsDjq6MeZnBUjaTTwI+AHEXFbFmOaFY5zdWsSDWfskgTcACyPiG80XpJZQTlXtyaRxYz9o8BngcMlPZpejs5gXLPi8Pnq1kSyOCtmEaAMajErJp+vbk3Gf3lqNhjn6taE\/F0xZoNxrm5NyDN2s4E4V7cm5cZuVo1zdWtibuxm\/TlXtybnjN2sP+fq1uQ8Yzer0NHd7Vzdmp4bu1mfFSuY8fWvO1e3pufGbgZbcvUYOdK5ujU9N3Yz2JKrP3Xhhc7Vrem5sZtVnK++9k\/+JO9qzBrmxm6tzeerWwm5sVvr8vnqVlI+j91al89Xt5LyjN1ak78HxkrMjd1aj3N1Kzk3dmstztWtBThjt9biXN1agGfs1jqcq1uLcGO31uBc3VqIG7uVn3N1azHO2K38nKtbi\/GM3crNubq1IDd2Ky\/n6tai3NitnJyrWwtzxm7l5FzdWphn7FY+ztWtxbmxW7k4VzdzY7cSca5uBjhjtzJxrm4GeMZuZeFc3WwLN3Zrfs7Vzbbixm7Nzbm62Xtk0tglfUfSy5KeyGI8s7r15erz5ztXN0tlNWO\/ETgyo7HM6uNc3ayqTBp7RNwPvJrFWGZ1ca5uNiBFRDYDSVOBOyNi\/wGWzwHmAHR0dBy8YMGCTJ53KPX09NDW1pZ3GTW1Wp0jNm7kwLPPZtyaNSy+7jre3nXXDKpLFH1b9kYvS9cspXNsJ4yFyRMm513SoIq+Pfs0S51dXV1LImJmzRUjIpMLMBV4op51p0+fHs1g4cKFeZdQl5ar86yzIiDi9tuzGa9C0bflug3rgouJK266IuYtmpd3OTUVfXv2aZY6gcVRR4\/1WTHWXJyrm9Xkxm7Nw7m6WV2yOt3xZuABYIakVZJOz2Jcsy18vrpZ3TL5rpiIOCWLccwG5O+BMauboxgrPufqZtvEjd2Kzbm62TZzY7ficq5utl38fexWXM7VzbaLZ+xWTM7VzbabG7sVj3N1s4a4sVuxOFc3a5gzdisW5+pmDfOM3YrDubpZJtzYrRicq5tlxo3d8udc3SxTztgtf87VzTLlGbvly7m6Webc2C0\/ztXNhoQbu+XDubrZkHHGbvlwrm42ZDxjt+HnXN1sSLmx2\/Byrm425NzYbdiM2LjRubrZMHDGbsNm2tVXO1c3GwaesdvwuPVWdv\/JT5yrmw0DN3Ybemmuvm7ffZ2rmw0DN3YbWhXnqz\/55S87VzcbBs7YbWhVnK\/+dnt73tWYtQTP2G3o+Hx1s1y4sdvQ8PnqZrlxY7fs+XtgzHLljN2y5++BMcuVZ+yWLefqZrlzY7fsOFc3KwQ3dsuGc3WzwnDGbtlwrm5WGJ6xW+Ocq5sVSiaNXdKRkp6WtELShVmMaU3CubpZ4TTc2CWNBK4CjgL2BU6RtG+j41oTcK5uVkhZzNgPAVZExLMRsRG4BTg+g3Gt6Ppy9fnznaubFYgiorEBpE8DR0bEGentzwKHRsTZ\/dabA8wB6OjoOHjBggUNPe9w6Onpoa2tLe8yasqjzo7ubva75BJeOOkkVs6dW9djmmF7Fr3G3uhl6ZqldI7thLEwecLkvEsaVNG3Z59mqbOrq2tJRMysuWJENHQBPgNcX3H7s8C3BnvM9OnToxksXLgw7xLqMux1PvNMRHt7xKxZERs31v2wZtieRa9x3YZ1wcXEFTddEfMWzcu7nJqKvj37NEudwOKooy9nEcWsAvaouN0JvJjBuFZEztXNCi+L89gfBt4v6X3A74CTgVMzGNeKyOermxVew409IjZJOhu4GxgJfCciljVcmRWPz1c3awqZ\/OVpRNwF3JXFWFZQPl\/drGn4L0+tNufqZk3F3xVjtTlXN2sqnrHb4JyrmzUdN3YbmHN1s6bkxm7VOVc3a1rO2K065+pmTcszdnsv5+pmTc2N3bbmXN2s6bmx27ucq5uVgjN2e5dzdbNS8IzdEs7VzUrDjd2cq5uVjBt7q3OublY6zthbnXN1s9LxjL2VOVc3KyU39lblXN2stNzYW5FzdbNSc8beipyrm5WaZ+ytxrm6Wem5sbcS5+pmLcGNvVU4VzdrGc7YW4VzdbOW4Rl7K3CubtZS3NjLzrm6WctxYy8z5+pmLckZe5k5VzdrSZ6xl5VzdbOW5cZeRs7VzVqaG3vZOFc3a3nO2MvGubpZy\/OMvUycq5sZbuzl4VzdzFJu7CUwYuNG5+pNbNUqOOoo+OY34dln867GyqChxi7pM5KWSeqVNDOromwbrF7NoaeemuTq8+c7V29CnZ2w225w7rkwbRrstx9ccAEsWgSbN+ddnTWjRg+ePgGcCFybQS22Hd789Gm0r13Lml0\/xHcePw4ez7uige21F3z1q3lXMbi8ahxV8Zv45JPJZd482HlnOPro5JDJJz8JjB3+2qz5NNTYI2I5gKRsqrH6jR8PGzbQnt7cdc2v+eJF4i3GsQNv5VraQK64Ai66KO8qBle0Gteuhe99L7mMHg3\/tWsk7\/vYoUwYPYG29ra8y7OCUkQ0PojUDZwfEYsHWWcOMAego6Pj4AULFjT8vEOtp6eHtrZi\/vKMWbuWaVddRcd99zOidzPvjB7LMx84jPuOncsfdtwp7\/Kq6uzsYdWqYm7PPkWtccwYmDgRJk2C9nZYv764+2alIv8OVWqWOru6upZERM3Yu+aMXdK9wK5VFl0UEf9ab0ERcR1wHcCMGTNi9uzZ9T40N93d3RS6znvvJe67j81jxjBq0ztMP\/j9vO\/CE\/OuakAPPtjNpz41O+8yBpVXjT\/8IXzuc1vf9+EPJxHMscfCAQdA5Qfjwu+bKdeZj5qNPSKOGI5CbDu89BI680weOfBAPrx0KaNWr2bU+LyLGpiUJEhFlkeNvb3wta\/BDjvAJz6RNPJjjoEpU4a3DisP\/+VpM7vtNgDWd3fDGWfkW4tttzVrkgOlXV3Ff+Oz5tBQY5d0AvAtoAP4qaRHI+KTmVRm1iJ22y25mGWl0bNifgz8OKNazMwsA\/7LUzOzknFjNzMrGTd2M7OScWM3MysZN3Yzs5JxYzczKxk3djOzknFjNzMrGTd2M7OScWM3MysZN3Yzs5JxYzczKxk3djOzknFjNzMrGTd2M7OScWM3MysZN3Yzs5JxYzczKxk3djOzklFEDP+TSm8CTw\/7E2+7XYBX8i6iDq4zO81QI7jOrDVLnTMior3WSg39Z9YNeDoiZub03HWTtNh1ZqcZ6myGGsF1Zq2Z6qxnPUcxZmYl48ZuZlYyeTX263J63m3lOrPVDHU2Q43gOrNWqjpzOXhqZmZDx1GMmVnJuLGbmZVMbo1d0mckLZPUK6lQpxlJOlLS05JWSLow73oGIuk7kl6W9ETetQxE0h6SFkpanr7e5+RdUzWSxkl6SNKv0zovybumwUgaKWmppDvzrmUgkp6T9LikR+s9TW+4SZok6YeSnkr30Y\/kXVN\/kmak27Dv8oakcwd9TF4Zu6R9gF7gWuD8iCjECy9pJPAb4BPAKuBh4JSIeDLXwqqQ9KdAD\/DdiNg\/73qqkTQFmBIRj0hqB5YAf1a07SlJwISI6JE0GlgEnBMRD+ZcWlWSvgDMBHaMiGPzrqcaSc8BMyOisH\/4I2k+8O8Rcb2kMcAOEfF63nUNJO1PvwMOjYjnB1ovtxl7RCyPiCL+9ekhwIqIeDYiNgK3AMfnXFNVEXE\/8GredQwmIlZHxCPp9TeB5cDu+Vb1XpHoSW+OTi+FPLNAUidwDHB93rU0M0k7An8K3AAQERuL3NRTHwdWDtbUwRl7NbsDL1TcXkUBG1EzkjQVOBD4Vb6VVJfGG48CLwP3REQh6wSuBP6W5BNvkQXwc0lLJM3Ju5gq9gJ+D\/xzGmtdL2lC3kXVcDJwc62VhrSxS7pX0hNVLoWcAadU5b5CztyaiaQ24EfAuRHxRt71VBMRmyPiAKATOERS4eItSccCL0fEkrxrqcNHI+Ig4CjgrDQ6LJJRwEHA1RFxILAeKPIxtTHAp4Bba607pN8VExFHDOX4Q2QVsEfF7U7gxZxqKYU0s\/4R8IOIuC3vemqJiNcldQNHAkU7MP1R4FOSjgbGATtK+n5E\/EXOdb1HRLyY\/vuypB+TxJz351vVVlYBqyo+mf2QAjd2kjfIRyLipVorOop5r4eB90t6X\/oOeTJwe841Na30oOQNwPKI+Ebe9QxEUoekSen18cARwFP5VvVeEfF3EdEZEVNJ9s1fFLGpS5qQHiwnjTf+GwV7k4yINcALkmakd30cKNRB\/X5OoY4YBvI93fEESauAjwA\/lXR3XrVUiohNwNnA3SQH+hZExLJ8q6pO0s3AA8AMSasknZ53TVV8FPgscHjF6VpH511UFVOAhZIeI3lzvyciCnsqYROYDCyS9GvgIeCnEfGznGuq5m+AH6Sv+wHAV3OupypJO5CcqVfXJ15\/pYCZWck4ijEzKxk3djOzknFjNzMrGTd2M7OScWM3MysZN3Yzs5JxYzczK5n\/DzSuexhd022zAAAAAElFTkSuQmCC#fixme\" alt=\"image\" \/><\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<div class=\"jp-Cell jp-MarkdownCell jp-Notebook-cell\">\r\n<div class=\"jp-Cell-inputWrapper\">\r\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\"><\/div>\r\n<div class=\"jp-InputArea jp-Cell-inputArea\">\r\n<div class=\"jp-InputPrompt jp-InputArea-prompt\"><\/div>\r\n<div class=\"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput\" data-mime-type=\"text\/markdown\">\r\n<h2 id=\"Now-that-looks-like-a-triangle!\">Now that looks like a triangle!<a class=\"anchor-link\" href=\"#Now-that-looks-like-a-triangle!\">\u00b6<\/a><\/h2>\r\nBut it's 7 blocks - 3 to the right, and 4 up. Phew! Are there more?\r\n\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<div class=\"jp-Cell jp-MarkdownCell jp-Notebook-cell\">\r\n<div class=\"jp-Cell-inputWrapper\">\r\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\"><\/div>\r\n<div class=\"jp-InputArea jp-Cell-inputArea\">\r\n<div class=\"jp-InputPrompt jp-InputArea-prompt\"><\/div>\r\n<div class=\"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput\" data-mime-type=\"text\/markdown\">\r\n<h2 id=\"What-about-L3?\">What about L3?<a class=\"anchor-link\" href=\"#What-about-L3?\">\u00b6<\/a><\/h2>\r\nThe L3 distance between two points [latex](x_1, y_1)[\/latex] and [latex](x_2, y_2)[\/latex] is given by:\r\n\r\n$$\\|(x_2, y_2)-(x_1, y_1)\\|= d = \\sqrt[3]{(x_2-x_1)^3+(y_2-y_1)^3}$$\r\n\r\nFor example:\r\n\r\n$$\\|(4, 3)-(3,-1)\\|= d = \\sqrt[3]{(4-1)^3+(3+1)^3}= \\sqrt[3]{4.4979} = ?$$\r\n\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<div class=\"jp-Cell jp-CodeCell jp-Notebook-cell\">\r\n<div class=\"jp-Cell-inputWrapper\">\r\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\"><\/div>\r\n<div class=\"jp-InputArea jp-Cell-inputArea\">\r\n<div class=\"jp-InputPrompt jp-InputArea-prompt\">In\u00a0[17]:<\/div>\r\n<div class=\"jp-CodeMirrorEditor jp-Editor jp-InputArea-editor\" data-type=\"inline\">\r\n<div class=\"CodeMirror cm-s-jupyter\">\r\n<div class=\"highlight hl-ipython3\">\r\n<pre><span class=\"c1\">## Try ord = 3.....  <\/span>\r\n\r\n<span class=\"c1\">## arithmatic from above:<\/span>\r\n\r\n<span class=\"n\">ans<\/span> <span class=\"o\">=<\/span> <span class=\"p\">((<\/span><span class=\"mi\">3<\/span><span class=\"p\">)<\/span><span class=\"o\">**<\/span><span class=\"mi\">3<\/span><span class=\"o\">+<\/span><span class=\"p\">(<\/span><span class=\"mi\">4<\/span><span class=\"p\">)<\/span><span class=\"o\">**<\/span><span class=\"mi\">3<\/span><span class=\"p\">)<\/span><span class=\"o\">**<\/span><span class=\"p\">(<\/span><span class=\"mi\">1<\/span><span class=\"o\">\/<\/span><span class=\"mi\">3<\/span><span class=\"p\">)<\/span>\r\n<span class=\"c1\">## a**b is like a^b -&gt; to the power of<\/span>\r\n\r\n<span class=\"nb\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">\"Using arithmatic, the answer is \"<\/span><span class=\"p\">,<\/span> <span class=\"n\">ans<\/span><span class=\"p\">)<\/span>\r\n<span class=\"c1\">##Can I do this in Python?  Sure!  set ord = 3<\/span>\r\n\r\n<span class=\"nb\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">\"The L3 norm is \"<\/span><span class=\"p\">,<\/span><span class=\"n\">norm<\/span><span class=\"p\">(<\/span><span class=\"n\">a<\/span><span class=\"o\">-<\/span><span class=\"n\">b<\/span><span class=\"p\">,<\/span> <span class=\"nb\">ord<\/span> <span class=\"o\">=<\/span><span class=\"mi\">3<\/span><span class=\"p\">))<\/span>\r\n<\/pre>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<div class=\"jp-Cell-outputWrapper\">\r\n<div class=\"jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser\"><\/div>\r\n<div class=\"jp-OutputArea jp-Cell-outputArea\">\r\n<div class=\"jp-OutputArea-child\">\r\n<div class=\"jp-OutputPrompt jp-OutputArea-prompt\"><\/div>\r\n<div class=\"jp-RenderedText jp-OutputArea-output\" data-mime-type=\"text\/plain\">\r\n<pre>Using arithmatic, the answer is  4.497941445275415\r\nThe L3 norm is  4.497941445275415\r\n<\/pre>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<div class=\"jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs\">\r\n<div class=\"jp-Cell-inputWrapper\">\r\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\"><\/div>\r\n<div class=\"jp-InputArea jp-Cell-inputArea\">\r\n<div class=\"jp-InputPrompt jp-InputArea-prompt\">In\u00a0[2]:<\/div>\r\n<div class=\"jp-CodeMirrorEditor jp-Editor jp-InputArea-editor\" data-type=\"inline\">\r\n<div class=\"CodeMirror cm-s-jupyter\">\r\n<div class=\"highlight hl-ipython3\">\r\n<pre><span class=\"o\">?<\/span>norm\r\n<\/pre>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<div class=\"jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs\">\r\n<div class=\"jp-Cell-inputWrapper\">\r\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\"><\/div>\r\n<div class=\"jp-InputArea jp-Cell-inputArea\">\r\n<div class=\"jp-InputPrompt jp-InputArea-prompt\">In\u00a0[\u00a0]:<\/div>\r\n<div class=\"jp-CodeMirrorEditor jp-Editor jp-InputArea-editor\" data-type=\"inline\">\r\n<div class=\"CodeMirror cm-s-jupyter\">\r\n<div class=\"highlight hl-ipython3\">\r\n<pre> \r\n<\/pre>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>","rendered":"<div class=\"jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs\">\n<div class=\"jp-Cell-inputWrapper\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\"><\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\">\n<div class=\"jp-InputPrompt jp-InputArea-prompt\">In\u00a0[\u00a0]:<\/div>\n<div class=\"jp-CodeMirrorEditor jp-Editor jp-InputArea-editor\" data-type=\"inline\">\n<div class=\"CodeMirror cm-s-jupyter\">\n<div class=\"highlight hl-ipython3\">\n<pre><span class=\"o\">---<\/span>\r\n<span class=\"n\">title<\/span><span class=\"p\">:<\/span> <span class=\"n\">Distances<\/span><span class=\"p\">,<\/span> <span class=\"n\">Norms<\/span> <span class=\"ow\">and<\/span> <span class=\"n\">Metrics<\/span>\r\n<span class=\"n\">author<\/span><span class=\"p\">:<\/span> <span class=\"n\">Amy<\/span> <span class=\"n\">Goldlist<\/span>\r\n<span class=\"nb\">format<\/span><span class=\"p\">:<\/span>\r\n    <span class=\"n\">html<\/span><span class=\"p\">:<\/span>\r\n        <span class=\"n\">embed<\/span><span class=\"o\">-<\/span><span class=\"n\">resources<\/span><span class=\"p\">:<\/span> <span class=\"n\">true<\/span>\r\n        <span class=\"n\">code<\/span><span class=\"o\">-<\/span><span class=\"n\">fold<\/span><span class=\"p\">:<\/span> <span class=\"n\">false<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell jp-MarkdownCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\"><\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\">\n<div class=\"jp-InputPrompt jp-InputArea-prompt\"><\/div>\n<div class=\"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput\" data-mime-type=\"text\/markdown\">\n<h2 id=\"Distance-(or-L2-Norm-\/-Metric)\">Distance (or L2 Norm \/ Metric)<a class=\"anchor-link\" href=\"#Distance-(or-L2-Norm-\/-Metric)\">\u00b6<\/a><\/h2>\n<p>The distance between two points [latex](x_1, y_1)[\/latex] and [latex](x_2, y_2)[\/latex] is given by:<\/p>\n<p>$$\\|(x_2, y_2)-(x_1, y_1)\\|= d = \\sqrt{(x_2-x_1)^2+(y_2-y_1)^2}$$<\/p>\n<p>We use the bars $\\|\\cdot\\|$ to mean &#8220;distance&#8221;.<\/p>\n<p>We can extend this to as many dimensions as we want:<\/p>\n<p>$$\\|(x_2, y_2, z_2, w_2)-(x_1, y_1, z_1, w_1)\\|= d = \\sqrt{(x_2-x_1)^2+(y_2-y1)^2+(z_2-z_1)^2+(w_2-w_1)^2}$$<\/p>\n<p>For example:<\/p>\n<p>$$\\|(4, 3)-(3,-1)\\|= d = \\sqrt{(4-1)^2+(3+1)^2}= \\sqrt{25} = 5$$<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell jp-CodeCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\"><\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\">\n<div class=\"jp-InputPrompt jp-InputArea-prompt\">In\u00a0[1]:<\/div>\n<div class=\"jp-CodeMirrorEditor jp-Editor jp-InputArea-editor\" data-type=\"inline\">\n<div class=\"CodeMirror cm-s-jupyter\">\n<div class=\"highlight hl-ipython3\">\n<pre><span class=\"kn\">import<\/span> <span class=\"nn\">numpy<\/span> <span class=\"k\">as<\/span> <span class=\"nn\">np<\/span>\r\n<span class=\"kn\">from<\/span> <span class=\"nn\">numpy.linalg<\/span> <span class=\"kn\">import<\/span> <span class=\"o\">*<\/span>\r\n\r\n<span class=\"c1\">## In Python:<\/span>\r\n<span class=\"c1\">## Let's define two points: <\/span>\r\n\r\n<span class=\"n\">a<\/span><span class=\"o\">=<\/span><span class=\"n\">np<\/span><span class=\"o\">.<\/span><span class=\"n\">array<\/span><span class=\"p\">([<\/span><span class=\"mi\">4<\/span><span class=\"p\">,<\/span><span class=\"mi\">3<\/span><span class=\"p\">])<\/span>\r\n<span class=\"n\">b<\/span><span class=\"o\">=<\/span><span class=\"n\">np<\/span><span class=\"o\">.<\/span><span class=\"n\">array<\/span><span class=\"p\">([<\/span><span class=\"mi\">1<\/span><span class=\"p\">,<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"p\">])<\/span>\r\n\r\n<span class=\"c1\">##and find the distance between them:<\/span>\r\n<span class=\"nb\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">\"a = \"<\/span><span class=\"p\">,<\/span><span class=\"n\">a<\/span><span class=\"p\">,<\/span> <span class=\"s2\">\"b= \"<\/span><span class=\"p\">,<\/span> <span class=\"n\">b<\/span><span class=\"p\">)<\/span>\r\n<span class=\"n\">norm<\/span><span class=\"p\">(<\/span><span class=\"n\">a<\/span><span class=\"o\">-<\/span><span class=\"n\">b<\/span><span class=\"p\">)<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell-outputWrapper\">\n<div class=\"jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser\"><\/div>\n<div class=\"jp-OutputArea jp-Cell-outputArea\">\n<div class=\"jp-OutputArea-child\">\n<div class=\"jp-OutputPrompt jp-OutputArea-prompt\"><\/div>\n<div class=\"jp-RenderedText jp-OutputArea-output\" data-mime-type=\"text\/plain\">\n<pre>a =  [4 3] b=  [ 1 -1]\r\n<\/pre>\n<\/div>\n<\/div>\n<div class=\"jp-OutputArea-child\">\n<div class=\"jp-OutputPrompt jp-OutputArea-prompt\">Out[1]:<\/div>\n<div class=\"jp-RenderedText jp-OutputArea-output jp-OutputArea-executeResult\" data-mime-type=\"text\/plain\">\n<pre>5.0<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell jp-CodeCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\"><\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\">\n<div class=\"jp-InputPrompt jp-InputArea-prompt\">In\u00a0[3]:<\/div>\n<div class=\"jp-CodeMirrorEditor jp-Editor jp-InputArea-editor\" data-type=\"inline\">\n<div class=\"CodeMirror cm-s-jupyter\">\n<div class=\"highlight hl-ipython3\">\n<pre><span class=\"c1\">## And let's graph it:<\/span>\r\n\r\n<span class=\"kn\">import<\/span> <span class=\"nn\">matplotlib.pyplot<\/span> <span class=\"k\">as<\/span> <span class=\"nn\">plt<\/span> \r\n\r\n<span class=\"n\">plt<\/span><span class=\"o\">.<\/span><span class=\"n\">plot<\/span><span class=\"p\">([<\/span><span class=\"n\">a<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">],<\/span><span class=\"n\">b<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">]],<\/span> <span class=\"p\">[<\/span><span class=\"n\">a<\/span><span class=\"p\">[<\/span><span class=\"mi\">1<\/span><span class=\"p\">],<\/span><span class=\"n\">b<\/span><span class=\"p\">[<\/span><span class=\"mi\">1<\/span><span class=\"p\">]],<\/span> <span class=\"s1\">'red'<\/span><span class=\"p\">,<\/span> <span class=\"n\">linestyle<\/span><span class=\"o\">=<\/span><span class=\"s1\">'-'<\/span><span class=\"p\">,<\/span> <span class=\"n\">marker<\/span><span class=\"o\">=<\/span><span class=\"s1\">'*'<\/span><span class=\"p\">)<\/span>\r\n\r\n\r\n<span class=\"n\">plt<\/span><span class=\"o\">.<\/span><span class=\"n\">axis<\/span><span class=\"p\">(<\/span><span class=\"s1\">'equal'<\/span><span class=\"p\">)<\/span>  <span class=\"c1\">## This is important to get the display correct<\/span>\r\n<span class=\"n\">plt<\/span><span class=\"o\">.<\/span><span class=\"n\">title<\/span><span class=\"p\">(<\/span><span class=\"s1\">'L2 Distance between 2 points'<\/span><span class=\"p\">)<\/span> \r\n\r\n<span class=\"n\">plt<\/span><span class=\"o\">.<\/span><span class=\"n\">xticks<\/span><span class=\"p\">(<\/span><span class=\"nb\">range<\/span><span class=\"p\">(<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"p\">,<\/span><span class=\"mi\">8<\/span><span class=\"p\">))<\/span>\r\n<span class=\"n\">plt<\/span><span class=\"o\">.<\/span><span class=\"n\">yticks<\/span><span class=\"p\">(<\/span><span class=\"nb\">range<\/span><span class=\"p\">(<\/span><span class=\"o\">-<\/span><span class=\"mi\">5<\/span><span class=\"p\">,<\/span><span class=\"mi\">8<\/span><span class=\"p\">))<\/span>\r\n\r\n\r\n<span class=\"c1\"># Show plot with grid <\/span>\r\n<span class=\"n\">plt<\/span><span class=\"o\">.<\/span><span class=\"n\">grid<\/span><span class=\"p\">()<\/span> \r\n\r\n<span class=\"c1\">##always important to actually display!<\/span>\r\n<span class=\"n\">plt<\/span><span class=\"o\">.<\/span><span class=\"n\">show<\/span><span class=\"p\">()<\/span> \r\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell-outputWrapper\">\n<div class=\"jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser\"><\/div>\n<div class=\"jp-OutputArea jp-Cell-outputArea\">\n<div class=\"jp-OutputArea-child\">\n<div class=\"jp-OutputPrompt jp-OutputArea-prompt\"><\/div>\n<div class=\"jp-RenderedImage jp-OutputArea-output\"><img decoding=\"async\" class=\"\" src=\"image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAiYAAAGxCAYAAABWRX0gAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAwhklEQVR4nO3deXQUdbrG8adDOk0CSYCEQEJCEgOCKDAILixOWJWAKC6gok5QxisQQETPdYTLsIyC3vHqOFfZFFmOhMURcAeCsnkHFBAGBhVFgTgKIkF2CE343T80PYQESEKqq7r7+zknR7tS1fW+XfHkseqtissYYwQAAOAAYXYXAAAAUIxgAgAAHINgAgAAHINgAgAAHINgAgAAHINgAgAAHINgAgAAHINgAgAAHINgAgAAHINgAseZOXOmXC6XNmzYcN51vvrqKz3++ONq3bq1atWqpTp16qh9+\/b629\/+Vq59rFy5Ui6Xy\/cVERGhunXrqn379ho1apR279593rp27dpVoX4mTJigxYsXV2gbJ3O5XBoyZEiVvd\/x48c1duxYrVy5ssre02kWLlyoe+65R40aNVJkZKTS0tJ077336uuvv7atprS0NPXv379S2+bm5uovf\/lLldYDFCOYICAtW7ZM7733nu644w698cYbmjNnjho3bqw+ffpo\/Pjx5X6fCRMmaO3atVqxYoWmT5+ujh076rXXXtMVV1yhOXPmlFi3Z8+eWrt2rRITEytUa7AFk6p2\/PhxjRs3LqiDybPPPqvjx49r1KhRWrJkiZ566ilt2rRJV199tbZt22ZLTYsWLdLo0aMrtS3BBFYKt7sAoDLuvvtu5eTkyOVy+ZZlZWVp\/\/79evbZZ\/XEE0\/I4\/Fc9H0aN26s66+\/3vf6lltu0WOPPaauXbuqf\/\/+atGihZo3by5Jqlu3rurWrVv1zSDovfPOO0pISCixrHPnzkpLS9MLL7ygV1991e81tWrVyu\/7BMqDMyYISPHx8SVCSbFrr71Wx48f14EDByr93nXq1NHUqVN1+vRpvfDCC77lZV3K2bRpk26++WYlJCTI4\/EoKSlJPXv21L\/+9S9Jv1z2OHbsmGbNmuW7bNSxY0dJ0k8\/\/aTBgwerWbNmqlmzphISEtS5c2etWbOmRD27du2Sy+XSc889p+eff17p6emqWbOm2rZtq3Xr1pWq\/5NPPlGvXr0UFxen6tWrKyMjQ8OHDy+xztdff61+\/fr56r7iiiv08ssvV+hzmjp1qi6\/\/HJ5PB41a9ZM8+bNK7XO3r179fDDDys5OVkRERFKT0\/XuHHjdPr0aV9vxWFv3Lhxvs+of\/\/+2rZtm1wul9544w3f+23cuFEul0tXXnllif3ccsstat26dYll8+fPV9u2bVWjRg3VrFlTN910kzZt2lSqxg0bNuiWW25RnTp1VL16dbVq1UoLFiwosU7xsV+xYoUGDRqk+Ph4xcXF6fbbb9cPP\/xw0c\/q3FAiSUlJSUpOTtZ333130e07duyoq666SmvWrNH111+vyMhINWjQQKNHj1ZRUVGJdQ8cOKDBgwerQYMGioiI0GWXXaZRo0apsLCwxHrnXsopvrw5d+5cjRo1SklJSYqJiVHXrl21ffv2ErW899572r17d4nLocUmT56sli1bqmbNmoqOjlbTpk01cuTIi\/YI+BjAYWbMmGEkmfXr11d4244dO5q6deua06dPX3C9FStWGEnmjTfeOO86iYmJJiMjo1RdO3fuNMYYc\/ToURMXF2fatGljFixYYFatWmXmz59vBg4caD7\/\/HNjjDFr1641kZGRpkePHmbt2rVm7dq1Ztu2bcYYY7788kszaNAgM2\/ePLNy5Urz7rvvmgEDBpiwsDCzYsUK33537txpJJm0tDTTvXt3s3jxYrN48WLTvHlzU7t2bXPw4EHfukuWLDFut9u0aNHCzJw503z00UfmtddeM3fffbdvnW3btpnY2FjTvHlzM3v2bLNs2TLz2GOPmbCwMDN27NiLfsaSTEpKimnWrJmZO3euefvtt0337t1LfZ579uwxKSkpJjU11UydOtUsX77c\/OlPfzIej8f079\/fGGPMyZMnzZIlS4wkM2DAAN9ntGPHDt8x+I\/\/+A\/fez7zzDMmMjLSSDLff\/+9McYYr9drYmJizH\/+53\/61nv66aeNy+UyDz74oHn33XfNwoULTdu2bU2NGjV8n78xxnz00UcmIiLC3HDDDWb+\/PlmyZIlpn\/\/\/kaSmTFjRqljf9lll5mhQ4eapUuXmldffdXUrl3bdOrU6aKfWVm++eYbExYWZh599NGLrpuZmWni4uJMUlKS+etf\/2qWLl1qhg0bZiSZnJwc33onTpwwLVq0MDVq1DDPPfecWbZsmRk9erQJDw83PXr0KPGeqampJjs72\/e6+L+JtLQ0c++995r33nvPzJ071zRs2NA0btzY99\/Utm3bTPv27U39+vV9x2vt2rXGGGPmzp1rJJmhQ4eaZcuWmeXLl5spU6aYYcOGVeozQmgimMBxKhtMXnnlFSPJvPjiixddtzzB5LrrrjORkZGl6ioOJhs2bDCSzOLFiy+4rxo1apT4BXA+p0+fNl6v13Tp0sXcdtttvuXFwaR58+YlAtenn35qJJm5c+f6lmVkZJiMjAxz4sSJ8+7npptuMsnJyebQoUMllg8ZMsRUr17dHDhw4IJ1SjKRkZFm7969JWpv2rSpadSokW\/Zww8\/bGrWrGl2795dYvvnnnvOSPIFhJ9++slIMmPGjCm1r\/vuu89cdtllvtddu3Y1Dz30kKldu7aZNWuWMcaY\/\/u\/\/zOSzLJly4wxxuTn55vw8HAzdOjQEu915MgRU79+fdO3b1\/fsqZNm5pWrVoZr9dbYt2bb77ZJCYmmqKiImPMv4\/94MGDS6z33\/\/930aS2bNnzwU\/s3N5vV7TsWNHExMTY\/Lz8y+6fmZmppFk3nrrrRLLH3roIRMWFub7jKdMmWIkmQULFpRY79lnny3xGRlz\/mByboBZsGCBkeQLH8YY07NnT5OamlqqziFDhphatWpdtB\/gQriUg6DwwQcfKCcnR3feeaeGDh1aJe9pjLng9xs1aqTatWvriSee0JQpU\/T5559XeB9TpkzR1VdfrerVqys8PFxut1sffvihvvjii1Lr9uzZU9WqVfO9btGihST57iD66quv9M0332jAgAGqXr16mfs7efKkPvzwQ912222KiorS6dOnfV89evTQyZMny7w8dK4uXbqoXr16vtfVqlXTXXfdpR07dvguY7377rvq1KmTkpKSSuwnKytLkrRq1apy7efbb7\/Vzp07dfLkSX388cfq3r27OnXqpLy8PEnS8uXL5fF41KFDB0nS0qVLdfr0af3ud78rsd\/q1asrMzPTN2S7Y8cOffnll7r33nslqdRnsWfPnhKXMKRfLhmd7dxjUB7GGA0YMEBr1qzR7NmzlZKSUq7toqOjS+2\/X79+OnPmjFavXi1J+uijj1SjRg3deeedJdYrvmTz4YcfXnQ\/l9Ljtddeq4MHD+qee+7RW2+9pf379190G+BcBBMEvKVLl+r2229Xt27dNGfOnDJnTyojPz9fSUlJ5\/1+bGysVq1apd\/85jcaOXKkrrzySiUlJWnMmDHyer0Xff\/nn39egwYN0nXXXac333xT69at0\/r169W9e3edOHGi1PpxcXElXhcP9xav+9NPP0mSkpOTz7vPgoICnT59Wv\/7v\/8rt9td4qtHjx6SVK5fJvXr1z\/vsoKCAknSjz\/+qHfeeafUfornQ8qzn65du0r6JXx8\/PHH8nq96ty5s7p27er7Jbt8+XK1b99ekZGRvv1K0jXXXFNq3\/Pnz\/ftt3i9xx9\/vNR6gwcPLrPGix2DizHG6Pe\/\/71ef\/11zZw5U7feemu5tpNUIggWO\/czLygoUP369Uv9N5CQkKDw8HDfehdyKT3ef\/\/9eu2117R7927dcccdSkhI0HXXXecLkUB5cFcOAtrSpUvVu3dvZWZm6s0331RERESVvO+nn36qvXv3asCAARdcr3nz5po3b56MMdqyZYtmzpyp8ePHKzIyUn\/4wx8uuO3rr7+ujh07avLkySWWHzlypFI1Fw+RFp+xKEvt2rVVrVo13X\/\/\/crJySlznfT09Ivua+\/eveddVvyLLT4+Xi1atNDTTz9d5ntcKPQVS05O1uWXX67ly5crLS1Nbdq0Ua1atdSlSxcNHjxYn3zyidatW6dx48b5tomPj5ck\/e1vf1Nqaup537t4vSeffFK33357mes0adLkojWWV3EomTFjhqZPn6777ruvQtsXB6mznfuZx8XF6ZNPPpExpkQ42bdvn06fPu3r2UoPPPCAHnjgAR07dkyrV6\/WmDFjdPPNN+urr7664PEAihFMELCWLVum3r17q0OHDlq8eHG5bg8ujwMHDmjgwIFyu9169NFHy7WNy+VSy5Yt9cILL2jmzJn67LPPfN\/zeDxl\/t+my+UqVfOWLVu0du3acp\/eP9vll1+ujIwMvfbaaxoxYkSZn0dUVJQ6deqkTZs2qUWLFpUOch9++KF+\/PFH3\/\/FFxUVaf78+crIyPCdsbn55pv1\/vvvKyMjQ7Vr1z7ve13s\/8i7du2qBQsWKCUlRT179vT12rBhQ\/3xj3+U1+v1nVmRpJtuuknh4eH65ptvdMcdd5x3v02aNFHjxo31j3\/8QxMmTKjYB1BBxhg99NBDmjFjhqZOnaoHHnigwu9x5MgRvf322yUuteTm5iosLEy\/\/e1vJf1y6WvBggVavHixbrvtNt96s2fP9n2\/KpzvZ\/psNWrUUFZWlk6dOqXevXtr27ZtBBOUC8EEjvXRRx+V+ZTVHj166LPPPlPv3r1Vv359jRw5Ups3by6xTrNmzRQTE3PRfXz99ddat26dzpw5o4KCAn3yySeaPn26Dh8+rNmzZ5e6LfVs7777riZNmqTevXvrsssukzFGCxcu1MGDB9WtWzffes2bN9fKlSv1zjvvKDExUdHR0WrSpIluvvlm\/elPf9KYMWOUmZmp7du3a\/z48UpPT\/fdTltRL7\/8snr16qXrr79ejz76qBo2bKj8\/HwtXbrU98C4F198UR06dNANN9ygQYMGKS0tTUeOHNGOHTv0zjvv6KOPPrrofuLj49W5c2eNHj1aNWrU0KRJk\/Tll1+WuGV4\/PjxysvLU7t27TRs2DA1adJEJ0+e1K5du\/T+++9rypQpSk5OVnR0tFJTU\/XWW2+pS5cuqlOnjuLj45WWlibpl1+mkyZN0v79+0s81KtLly6aMWOGateuXeJW4bS0NI0fP16jRo3St99+q+7du6t27dr68ccf9emnn6pGjRq+MyxTp05VVlaWbrrpJvXv318NGjTQgQMH9MUXX+izzz4rcavypRg2bJimT5+uBx98UM2bNy8xx+PxeMr1TJG4uDgNGjRI+fn5uvzyy\/X+++\/rlVde0aBBg9SwYUNJ0u9+9zu9\/PLLys7O1q5du9S8eXN9\/PHHmjBhgnr06FEiwF2K5s2ba+HChZo8ebJat26tsLAwtWnTRg899JAiIyPVvn17JSYmau\/evZo4caJiY2N1zTXXVMm+EQLsm7sFylZ8B8T5vnbu3GnGjBlzwXXOvt22LMV3IBR\/hYeHm7i4ONO2bVszcuRIs2vXrvPWVXxXzpdffmnuuecek5GRYSIjI01sbKy59tprzcyZM0tst3nzZtO+fXsTFRVlJJnMzExjjDGFhYXm8ccfNw0aNDDVq1c3V199tVm8eLHJzs4uccdD8V05f\/7zn0vVpDLuZlm7dq3JysoysbGxxuPxmIyMjFK3pO7cudM8+OCDpkGDBsbtdpu6deuadu3amaeeeuqCn1vxPnNycsykSZNMRkaGcbvdpmnTpmbOnDml1v3pp5\/MsGHDTHp6unG73aZOnTqmdevWZtSoUebo0aO+9ZYvX25atWplPB6PkVTibpGff\/7ZhIWFmRo1aphTp075ls+ZM8dIMrfffnuZdS5evNh06tTJxMTEGI\/HY1JTU82dd95pli9fXmK9f\/zjH6Zv374mISHBuN1uU79+fdO5c2czZcoU3zrnu1Os+OfoYj9vqamp5\/1ZLevulnNlZmaaK6+80qxcudK0adPGeDwek5iYaEaOHFnqjqKCggIzcOBAk5iYaMLDw01qaqp58sknzcmTJ0vVVNZdOefeqVb883f27dMHDhwwd955p6lVq5ZxuVym+FfJrFmzTKdOnUy9evVMRESESUpKMn379jVbtmy5aI9AMZcxF7n1AABgq44dO2r\/\/v365z\/\/aXcpgOW4KwcAADgGwQQAADgGl3IAAIBjcMYEAAA4BsEEAAA4BsEEAAA4hqMfsHbmzBn98MMPio6OrrK\/fwIAAKxljNGRI0eUlJSksLCKnQNxdDD54YcfKvVobgAAYL\/vvvvugn9YtCyODibR0dGSpJ07d6pOnTo2V+M\/Xq9Xy5Yt04033ii32213OX5D3\/QdCuibvkPBgQMHlJ6e7vs9XhGODibFl2+io6PL9XdPgoXX61VUVJRiYmJC6geZvuk7FNA3fYcCr9crSZUaw2D4FQAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAAAOAbBBAD8yLVxo9qNHi3Xxo12lwI4kqXBZPLkyWrRooViYmIUExOjtm3b6oMPPrBylwDgaK7XX1fdrVvlmjPH7lIARwq38s2Tk5P1zDPPqFGjRpKkWbNm6dZbb9WmTZt05ZVXWrlrAHCO3bul\/fsll0thCxZIksLmz5ceeEAyRoqPl1JTbS4ScAZLg0mvXr1KvH766ac1efJkrVu3rsxgUlhYqMLCQt\/rw4cPS5K8Xq+8Xq+VpTpKca+h1LNE3\/QdvNxpaaUX7t8vtW7te+k9dcp\/BdkglI732UK978pwGWNMFdZyXkVFRXrjjTeUnZ2tTZs2qVmzZqXWGTt2rMaNG1dqeW5urqKiovxRJgBUueRVq9Tqr39VWFFRqe+dqVZNm4YN078yM22oDLDG8ePH1a9fPx06dEgxMTEV2tbyYLJ161a1bdtWJ0+eVM2aNZWbm6sePXqUuW5ZZ0xSUlK0Z88excXFWVmmo3i9XuXl5albt25yu912l+M39E3fQW3tWrnLCB\/eTz6RWrWyoSD\/Crnj\/atQ7bugoECJiYmVCiaWXsqRpCZNmmjz5s06ePCg3nzzTWVnZ2vVqlVlnjHxeDzyeDyllrvd7pA6oMXoO7TQd5B78UVJkpHkkmTCwuQ6c0bu8HApFPr\/Vcgc73OEWt+X0qvlwSQiIsI3\/NqmTRutX79eL774oqZOnWr1rgHAGXJzpYULf\/n3xo21uWtXtfj0U7m+\/15KSLC3NsBh\/P4cE2NMics1ABDUtm+XHn74l38fOVKn\/\/lP7b7pJhX9\/e\/Srl1ScrKt5QFOY+kZk5EjRyorK0spKSk6cuSI5s2bp5UrV2rJkiVW7hYAnOHECalvX+noUaljR2n8eOnMmV++53JJERG2lgc4kaXB5Mcff9T999+vPXv2KDY2Vi1atNCSJUvUrVs3K3cLAM4wfLi0Zcsvl2tyc6Vq1f4dTACUydJgMn36dCvfHgCcKzdXmjbtlzMjc+ZIiYl2VwQEBP5WDgBUtbPnSkaPlrp2tbceIIAQTACgKp07V\/LHP9pdERBQCCYAUJXKmisBUG4EEwCoKsyVAJeMYAIAVYG5EqBKEEwA4FIxVwJUGYIJAFwq5kqAKkMwAYBLwVwJUKUIJgBQWcyVAFWOYAIAlcFcCWAJggkAVAZzJYAlCCYAUFHMlQCWIZgAQEUwVwJYimACAOXFXAlgOYIJAJQXcyWA5QgmAFAezJUAfkEwAYCLYa4E8BuCCQBcCHMlgF8RTADgQpgrAfyKYAIA58NcCeB3BBMAKAtzJYAtCCYAcC7mSgDbEEwA4FzMlQC2IZgAwNmYKwFsRTABgGLMlQC2I5gAgMRcCeAQBBMAkJgrARyCYAIAzJUAjkEwARDamCsBHIVgAiB0MVcCOA7BBEDoYq4EcByCCYDQxFwJ4EgEEwChh7kSwLEIJgBCC3MlgKMRTACEFuZKAEcjmAAIHcyVAI5HMAEQGpgrAQICwQRA8GOuBAgYBBMAwY+5EiBgEEwABDfmSoCAQjABELyYKwECDsEEQHBirgQISAQTAMGJuRIgIBFMAAQf5kqAgEUwARBcmCsBAhrBBEDwYK4ECHgEEwDBg7kSIOARTAAEB+ZKgKBAMAEQ+JgrAYIGwQRAYGOuBAgqBBMAgY25EiCoWBpMJk6cqGuuuUbR0dFKSEhQ7969tX37dit3CSCUMFcCBB1Lg8mqVauUk5OjdevWKS8vT6dPn9aNN96oY8eOWblbAKGAuRIgKIVb+eZLliwp8XrGjBlKSEjQxo0b9dvf\/rbU+oWFhSosLPS9Pnz4sCTJ6\/XK6\/VaWaqjFPcaSj1L9E3fFXDihML79JHr6FGdycxU0ZNPSgHy+XG86TsUXEq\/LmOMqcJaLmjHjh1q3Lixtm7dqquuuqrU98eOHatx48aVWp6bm6uoqCh\/lAggALScNElpy5bpZGysVr7wggrr1LG7JABnOX78uPr166dDhw4pJiamQtv6LZgYY3Trrbfq559\/1po1a8pcp6wzJikpKdqzZ4\/i4uL8UaYjeL1e5eXlqVu3bnK73XaX4zf0Td\/l4Zo7V+HZ2TIul4ref1+mSxcLq6x6HG\/6DgUFBQVKTEysVDCx9FLO2YYMGaItW7bo448\/Pu86Ho9HHo+n1HK32x1SB7QYfYcW+i6H7dulnBxJkmv0aIV3725hZdbieIeWUOv7Unr1SzAZOnSo3n77ba1evVrJycn+2CWAYMPzSoCQYGkwMcZo6NChWrRokVauXKn09HQrdwcgmPG8EiAkWBpMcnJylJubq7feekvR0dHau3evJCk2NlaRkZFW7hpAMOF5JUDIsPQ5JpMnT9ahQ4fUsWNHJSYm+r7mz59v5W4BBBOeVwKEFMsv5QBApTFXAoQc\/lYOAOdirgQIOQQTAM7EXAkQkggmAJyHuRIgZBFMADgLcyVASCOYAHAW5kqAkEYwAeAczJUAIY9gAsAZmCsBIIIJACdgrgTArwgmAOzHXAmAXxFMANjKNXcucyUAfAgmAGxT8\/vvVS0n55cXzJUAEMEEgF1OnFCbP\/9ZLuZKAJyFYALAFmGPPabYXbtkmCsBcBaCCQD\/y81VtVdflXG5VDRrFnMlAHwIJgD866znlWzv21emSxebCwLgJAQTAP5z1vNKzmRmanvfvnZXBMBhCCYA\/Oes55UUzZ7NXAmAUggmAPyDv4MDoBwIJgCsx9\/BAVBOBBMA1uLv4ACoAIIJAGvxd3AAVADBBIB1mCsBUEEEEwDWYK4EQCUQTABUPeZKAFQSwQRA1WOuBEAlEUwAVC3mSgBcAoIJgKrDXAmAS0QwAVA1mCsBUAUIJgCqBnMlAKoAwQTApWOuBEAVIZgAuDTMlQCoQgQTAJXHXAmAKkYwAVB5zJUAqGIEEwCVw1wJAAsQTABUHHMlACxCMAFQMcyVALAQwQRAxTBXAsBCBBMA5cdcCQCLEUwAlA9zJQD8gGAC4OKYKwHgJwQTABfHXAkAPyGYALgw5koA+BHBBMD5MVcCwM8IJgDKxlwJABsQTACUjbkSADYgmAAojbkSADYhmAAoibkSADYimAD4N+ZKANiMYALg35grAWAzggmAXzBXAsABCCYAmCsB4BiWBpPVq1erV69eSkpKksvl0uLFi63cHYDKYK4EgINYGkyOHTumli1b6qWXXrJyNwAuBXMlABwk3Mo3z8rKUlZWVrnXLywsVGFhoe\/14cOHJUler1der7fK63Oq4l5DqWeJvu3o2zV3rsKnTZNxuVQ0a5ZMfLzkpzo43vQdCkK978pwGWNMFdZy\/h25XFq0aJF69+593nXGjh2rcePGlVqem5urqKgoC6sDQk\/N779X5mOPKfzkSX15113afs89dpcEIEgcP35c\/fr106FDhxQTE1OhbR0VTMo6Y5KSkqI9e\/YoLi7OD1U6g9frVV5enrp16ya32213OX5D337s+8QJhXfoINfWrTqTmamiJUv8fgmH403foSBU+y4oKFBiYmKlgomll3IqyuPxyOPxlFrudrtD6oAWo+\/Q4te+hwyRtm6VEhIUNneuwqpX989+y8DxDi30HRoupVduFwZCDc8rAeBgBBMglPC8EgAOZ+mlnKNHj2rHjh2+1zt37tTmzZtVp04dNWzY0MpdAzgXzysBEAAsDSYbNmxQp06dfK9HjBghScrOztbMmTOt3DWAc\/G8EgABwNJg0rFjR\/npph8AF8JcCYAAwYwJEOyYKwEQQAgmQDBjrgRAgCGYAMGMuRIAAYZgAgQr5koABCCCCRCMmCsBEKAIJkCwYa4EQAAjmADBhrkSAAGMYAIEE+ZKAAQ4ggkQLJgrARAECCZAMGCuBECQIJgAwYC5EgBBgmACBDrmSgAEEYIJEMiYKwEQZAgmQKBirgRAECKYAIGKuRIAQYhgAgQi5koABCmCCRBomCsBEMQIJkAgYa4EQJAjmACBhLkSAEGOYAIECuZKAIQAggkQCJgrARAiCCaA0zFXAiCEEEwAp2OuBEAIIZgATsZcCYAQQzABnIq5EgAhiGACOBFzJQBCFMEEcCLmSgCEKIIJ4DTMlQAIYQQTwEmYKwEQ4ggmgFMwVwIABBPAKcIee4y5EgAhj2ACOECDVatU7dVXmSsBEPIIJoDdtm\/XbyZP\/uXfmSsBEOLC7S4ACGknTii8Xz+5Tp7UmcxMhTFXAiDEccYEsNPw4XJt3aqTsbEqmj2buRIAIY9gAtjl1+eVGJdLn40YwVwJAIhgAtjjrOeVnBk5Uj+1bGlzQQDgDAQTwN\/OeV7Jmf\/6L7srAgDHIJgA\/sbfwQGA8yKYAP7E38EBgAsimAD+wt\/BAYCLIpgA\/sDfwQGAciGYAP7AXAkAlAvBBLAacyUAUG4EE8BKzJUAQIUQTACrMFcCABVGMAGswlwJAFQYwQSwAnMlAFApBBOgqjFXAgCVRjABqhJzJQBwSQgmQFVirgQALolfgsmkSZOUnp6u6tWrq3Xr1lqzZo0\/dgv4F3MlAHDJLA8m8+fP1\/DhwzVq1Cht2rRJN9xwg7KyspSfn2\/1rgH\/Ya4EAKpEuNU7eP755zVgwAD9\/ve\/lyT95S9\/0dKlSzV58mRNnDixxLqFhYUqLCz0vT58+LAkyev1yuv1Wl2qYxT3Gko9SwHc94kTCu\/TR66jR3UmM1NFTz4pVaCHgO37EtE3fYeCUO+7MlzGGFOFtZRw6tQpRUVF6Y033tBtt93mW\/7II49o8+bNWrVqVYn1x44dq3HjxpV6n9zcXEVFRVlVJnBJWk6apLRly3QyNlYrX3hBhXXq2F0SANjq+PHj6tevnw4dOqSYmJgKbWvpGZP9+\/erqKhI9erVK7G8Xr162rt3b6n1n3zySY0YMcL3+vDhw0pJSVGnTp0UFxdnZamO4vV6lZeXp27dusntdttdjt8EYt+uuXMVvmyZjMul8Hnz1KVLlwq\/RyD2XRXom75DQaj2XVBQUOltLb+UI0kul6vEa2NMqWWS5PF45PF4Si13u90hdUCL0bfDbd8u5eRIklyjRyu8e\/dLeruA6buK0Xdooe\/QcCm9Wjr8Gh8fr2rVqpU6O7Jv375SZ1GAgMLzSgDAEpYGk4iICLVu3Vp5eXkllufl5aldu3ZW7hqwFs8rAQBLWH4pZ8SIEbr\/\/vvVpk0btW3bVtOmTVN+fr4GDhxo9a4Ba\/C8EgCwjOXB5K677lJBQYHGjx+vPXv26KqrrtL777+v1NRUq3cNVD2eVwIAlvLL8OvgwYM1ePBgf+wKsA5zJQBgOf5WDlBezJUAgOUIJkB5MFcCAH5BMAEuhrkSAPAbgglwIcyVAIBfEUyAC2GuBAD8imACnA9zJQDgdwQToCzMlQCALQgmwLmYKwEA2xBMgHMxVwIAtiGYAGdjrgQAbEUwAYoxVwIAtiOYABJzJQDgEAQTQGKuBAAcgmACMFcCAI5BMEFoY64EAByFYILQxVwJADgOwQShi7kSAHAcgglCE3MlAOBIBBOEHuZKAMCxCCYILcyVAICjEUwQWpgrAQBHI5ggdDBXAgCORzBBaGCuBAACAsEEwY+5EgAIGAQTBD\/mSgAgYBBMENyYKwGAgEIwQfBirgQAAg7BBMGJuRIACEgEEwQn5koAICARTBB8mCsBgIBFMEFwYa4EAAIawQTBg7kSAAh4BBMED+ZKACDgEUwQHJgrAYCgQDBB4GOuBACCBsEEgY25EgAIKgQTBDbmSgAgqBBMELiYKwGAoEMwQWBirgQAghLBBIGHuRIACFoEEwQe5koAIGgRTBBYmCsBgKBGMEHgYK4EAIIewQSBgbkSAAgJBBMEBuZKACAkEEzgfMyVAEDIIJjA2ZgrAYCQQjCBczFXAgAhh2AC52KuBABCDsEEzsRcCQCEpHC7CwCKuTZuVLvRo+U6eZK5EgAIUZaeMXn66afVrl07RUVFqVatWlbuCkHA9frrqrt1q6rl5DBXAgAhytJgcurUKfXp00eDBg2ycjcIZLt3Sxs3Sp99prAFCyRJroICqXZt6Q9\/kP71L5sLBAD4k6WXcsaNGydJmjlzZrnWLywsVGFhoe\/14cOHJUler1der7fK63Oq4l5DoWd3WlqpZUaS6+efpe7dJUneU6f8W5SfhdLxPht903coCPW+K8NljDFVWEuZZs6cqeHDh+vgwYMXXG\/s2LG+MHO23NxcRUVFWVQd7JS8apVa\/fWvCisqKvW9M9WqadOwYfpXZqYNlQEAKuv48ePq16+fDh06pJiYmApt66hgUtYZk5SUFO3Zs0dxcXEWV+kcXq9XeXl56tatm9xut93lWG\/TJrmvu67UYu8nn0itWtlQkH+F3PH+FX3TdygI1b4LCgqUmJhYqWBS4Us55zurcbb169erTZs2FX1reTweeTyeUsvdbndIHdBiIdN3+C8\/hiYsTK4zZ3z\/dIeHS6HQ\/69C5nifg75DC32HhkvptcLBZMiQIbr77rsvuE5aGXMDwHklJEj168s0aKB\/XHutWnz6qVzff\/\/LcgBASKlwMImPj1d8fLwVtSBUJSdLu3apyOXS7g8+0JV\/+YvCjJHKOHsGAAhult6Vk5+frwMHDig\/P19FRUXavHmzJKlRo0aqWbOmlbtGoPF4pOIpbpdLioiwtx4AgC0sDSZ\/\/OMfNWvWLN\/rVr8OMq5YsUIdO3a0ctcAACAAWfqAtZkzZ8oYU+qLUAIAAMrCH\/EDAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOQTABAACOEW53ARdijJEkHTlyRG632+Zq\/Mfr9er48eM6fPgwfYcA+qbvUEDfodX3kSNHJP3793hFODqYFBQUSJLS09NtrgQAAFRUQUGBYmNjK7SNo4NJnTp1JEn5+fkVbiyQHT58WCkpKfruu+8UExNjdzl+Q9\/0HQrom75DwaFDh9SwYUPf7\/GKcHQwCQv7ZQQmNjY2pA5osZiYGPoOIfQdWug7tIRq38W\/xyu0jQV1AAAAVArBBAAAOIajg4nH49GYMWPk8XjsLsWv6Ju+QwF903cooO+K9+0ylbmXBwAAwAKOPmMCAABCC8EEAAA4BsEEAAA4BsEEAAA4BsEEAAA4RsAEk6efflrt2rVTVFSUatWqZXc5lpo0aZLS09NVvXp1tW7dWmvWrLG7JEutXr1avXr1UlJSklwulxYvXmx3SX4xceJEXXPNNYqOjlZCQoJ69+6t7du3212W5SZPnqwWLVr4noTZtm1bffDBB3aX5VcTJ06Uy+XS8OHD7S7FcmPHjpXL5SrxVb9+fbvL8ovvv\/9e9913n+Li4hQVFaXf\/OY32rhxo91lWSotLa3U8Xa5XMrJySn3ewRMMDl16pT69OmjQYMG2V2KpebPn6\/hw4dr1KhR2rRpk2644QZlZWUpPz\/f7tIsc+zYMbVs2VIvvfSS3aX41apVq5STk6N169YpLy9Pp0+f1o033qhjx47ZXZqlkpOT9cwzz2jDhg3asGGDOnfurFtvvVXbtm2zuzS\/WL9+vaZNm6YWLVrYXYrfXHnlldqzZ4\/va+vWrXaXZLmff\/5Z7du3l9vt1gcffKDPP\/9c\/\/M\/\/xP0\/2O9fv36Esc6Ly9PktSnT5\/yv4kJMDNmzDCxsbF2l2GZa6+91gwcOLDEsqZNm5o\/\/OEPNlXkX5LMokWL7C7DFvv27TOSzKpVq+wuxe9q165tXn31VbvLsNyRI0dM48aNTV5ensnMzDSPPPKI3SVZbsyYMaZly5Z2l+F3TzzxhOnQoYPdZdjukUceMRkZGebMmTPl3iZgzpiEglOnTmnjxo268cYbSyy\/8cYb9fe\/\/92mquAvhw4dkqRK\/TXOQFVUVKR58+bp2LFjatu2rd3lWC4nJ0c9e\/ZU165d7S7Fr77++mslJSUpPT1dd999t7799lu7S7Lc22+\/rTZt2qhPnz5KSEhQq1at9Morr9hdll+dOnVKr7\/+uh588EG5XK5yb0cwcZD9+\/erqKhI9erVK7G8Xr162rt3r01VwR+MMRoxYoQ6dOigq666yu5yLLd161bVrFlTHo9HAwcO1KJFi9SsWTO7y7LUvHnz9Nlnn2nixIl2l+JX1113nWbPnq2lS5fqlVde0d69e9WuXTsVFBTYXZqlvv32W02ePFmNGzfW0qVLNXDgQA0bNkyzZ8+2uzS\/Wbx4sQ4ePKj+\/ftXaDtbg0lZQ1Hnfm3YsMHOEm1xbrI0xlQobSLwDBkyRFu2bNHcuXPtLsUvmjRpos2bN2vdunUaNGiQsrOz9fnnn9tdlmW+++47PfLII3r99ddVvXp1u8vxq6ysLN1xxx1q3ry5unbtqvfee0+SNGvWLJsrs9aZM2d09dVXa8KECWrVqpUefvhhPfTQQ5o8ebLdpfnN9OnTlZWVpaSkpAptF25RPeUyZMgQ3X333RdcJy0tzT\/FOEB8fLyqVatW6uzIvn37Sp1FQfAYOnSo3n77ba1evVrJycl2l+MXERERatSokSSpTZs2Wr9+vV588UVNnTrV5sqssXHjRu3bt0+tW7f2LSsqKtLq1av10ksvqbCwUNWqVbOxQv+pUaOGmjdvrq+\/\/truUiyVmJhY6izgFVdcoTfffNOmivxr9+7dWr58uRYuXFjhbW0NJvHx8YqPj7ezBEeJiIhQ69atlZeXp9tuu823PC8vT7feequNlcEKxhgNHTpUixYt0sqVK5Wenm53SbYxxqiwsNDuMizTpUuXUneiPPDAA2ratKmeeOKJkAklklRYWKgvvvhCN9xwg92lWKp9+\/albv\/\/6quvlJqaalNF\/jVjxgwlJCSoZ8+eFd7W1mBSEfn5+Tpw4IDy8\/NVVFSkzZs3S5IaNWqkmjVr2ltcFRoxYoTuv\/9+tWnTRm3bttW0adOUn5+vgQMH2l2aZY4ePaodO3b4Xu\/cuVObN29WnTp11LBhQxsrs1ZOTo5yc3P11ltvKTo62nemLDY2VpGRkTZXZ52RI0cqKytLKSkpOnLkiObNm6eVK1dqyZIldpdmmejo6FKzQzVq1FBcXFzQzxQ9\/vjj6tWrlxo2bKh9+\/bpqaee0uHDh5WdnW13aZZ69NFH1a5dO02YMEF9+\/bVp59+qmnTpmnatGl2l2a5M2fOaMaMGcrOzlZ4eCVihkV3CFW57OxsI6nU14oVK+wurcq9\/PLLJjU11URERJirr7466G8fXbFiRZnHNjs72+7SLFVWz5LMjBkz7C7NUg8++KDv57tu3bqmS5cuZtmyZXaX5XehcrvwXXfdZRITE43b7TZJSUnm9ttvN9u2bbO7LL945513zFVXXWU8Ho9p2rSpmTZtmt0l+cXSpUuNJLN9+\/ZKbe8yxphLjkcAAABVgNuFAQCAYxBMAACAYxBMAACAYxBMAACAYxBMAACAYxBMAACAYxBMAACAYxBMAACAYxBMAACAYxBMAACAYxBMAACAY\/w\/MefahrL11z4AAAAASUVORK5CYII=#fixme\" alt=\"image\" \/><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell jp-MarkdownCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\"><\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\">\n<div class=\"jp-InputPrompt jp-InputArea-prompt\"><\/div>\n<div class=\"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput\" data-mime-type=\"text\/markdown\">\n<h2 id=\"Wait,-isn't-that-a-vector?\">Wait, isn&#8217;t that a vector?<a class=\"anchor-link\" href=\"#Wait,-isn't-that-a-vector?\">\u00b6<\/a><\/h2>\n<p>Yes. Yes it is. Hopefully, you can see that the distance between 2 points is the magnitude of the vector found by subtracting one from the other. Phew!<\/p>\n<p>But what this (should) lead to is&#8230; Are there different ways of finding distance? What if you lived in Manhattan, and needed to drive &#8211; then calculating a diagonal distance doesn&#8217;t make much sense.<\/p>\n<p>I&#8217;m not going through a formal definition, but we can develop math with the basic idea of &#8220;distance&#8221;, then sub in any way of calculating distance that we choose.<\/p>\n<h3 id=\"Definition-of-%22Distance%22\">Definition of &#8220;Distance&#8221;<a class=\"anchor-link\" href=\"#Definition-of-%22Distance%22\">\u00b6<\/a><\/h3>\n<ul>\n<li>Commutes: [latex]\\|a-b\\| = \\|b-a\\|[\/latex], that is, the order doesn&#8217;t matter.<\/li>\n<li>The triangle inequality: [latex]\\|a-b\\| \\leq \\|a\\|+\\|b\\|[\/latex]<\/li>\n<li>Zero is special: if [latex]\\|a-b\\| =0[\/latex], then [latex]a=b[\/latex].<\/li>\n<\/ul>\n<h2 id=\"Manhattan-Distance-\/-Taxicab-metric-\/-L1-Norm\">Manhattan Distance \/ Taxicab metric \/ L1-Norm<a class=\"anchor-link\" href=\"#Manhattan-Distance-\/-Taxicab-metric-\/-L1-Norm\">\u00b6<\/a><\/h2>\n<p>Depending on where you read, this distance measure has many names. I&#8217;m not going through a formal definition, but we can develop math with the basic idea of &#8220;distance&#8221;, then sub in any way of calculating distance that we choose.<\/p>\n<p>Here, Instead of squaring and square rooting, we are going to take the absolute value:<\/p>\n<p>$$\\|(x_2, y_2)-(x_1, y_1)\\|= d = |x_2-x_1|+|y_2-y_1|$$<\/p>\n<p>so:<\/p>\n<p>$$\\|(4, 3)-(3,-1)\\|= d = |4-1|+|3+1|= 3+4 = 7$$<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell jp-CodeCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\"><\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\">\n<div class=\"jp-InputPrompt jp-InputArea-prompt\">In\u00a0[4]:<\/div>\n<div class=\"jp-CodeMirrorEditor jp-Editor jp-InputArea-editor\" data-type=\"inline\">\n<div class=\"CodeMirror cm-s-jupyter\">\n<div class=\"highlight hl-ipython3\">\n<pre><span class=\"c1\">## Can I do this in Python?  Sure!  set ord = 1<\/span>\r\n\r\n<span class=\"nb\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">\"The Manhattan norm is \"<\/span><span class=\"p\">,<\/span><span class=\"n\">norm<\/span><span class=\"p\">(<\/span><span class=\"n\">a<\/span><span class=\"o\">-<\/span><span class=\"n\">b<\/span><span class=\"p\">,<\/span> <span class=\"nb\">ord<\/span> <span class=\"o\">=<\/span><span class=\"mi\">1<\/span><span class=\"p\">))<\/span>\r\n\r\n<span class=\"c1\">#graphically:<\/span>\r\n\r\n\r\n\r\n<span class=\"c1\">##put in our old distance in red<\/span>\r\n<span class=\"n\">plt<\/span><span class=\"o\">.<\/span><span class=\"n\">plot<\/span><span class=\"p\">([<\/span><span class=\"n\">a<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">],<\/span><span class=\"n\">b<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">]],<\/span> <span class=\"p\">[<\/span><span class=\"n\">a<\/span><span class=\"p\">[<\/span><span class=\"mi\">1<\/span><span class=\"p\">],<\/span><span class=\"n\">b<\/span><span class=\"p\">[<\/span><span class=\"mi\">1<\/span><span class=\"p\">]],<\/span> <span class=\"s1\">'red'<\/span><span class=\"p\">,<\/span> <span class=\"n\">linestyle<\/span><span class=\"o\">=<\/span><span class=\"s1\">'-'<\/span><span class=\"p\">,<\/span> <span class=\"n\">marker<\/span><span class=\"o\">=<\/span><span class=\"s1\">'*'<\/span><span class=\"p\">)<\/span>\r\n\r\n<span class=\"c1\">## first we go along the x axis, 3 blocks  (in blue)<\/span>\r\n<span class=\"n\">plt<\/span><span class=\"o\">.<\/span><span class=\"n\">quiver<\/span><span class=\"p\">(<\/span><span class=\"n\">b<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">],<\/span> <span class=\"n\">b<\/span><span class=\"p\">[<\/span><span class=\"mi\">1<\/span><span class=\"p\">],<\/span> <span class=\"p\">(<\/span><span class=\"n\">a<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">]<\/span><span class=\"o\">-<\/span><span class=\"n\">b<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">]),<\/span> <span class=\"mi\">0<\/span><span class=\"p\">,<\/span> <span class=\"n\">color<\/span><span class=\"o\">=<\/span><span class=\"s1\">'b'<\/span><span class=\"p\">,<\/span> <span class=\"n\">units<\/span><span class=\"o\">=<\/span><span class=\"s1\">'xy'<\/span><span class=\"p\">,<\/span> <span class=\"n\">scale<\/span><span class=\"o\">=<\/span><span class=\"mi\">1<\/span><span class=\"p\">)<\/span> \r\n\r\n<span class=\"c1\">##then we go up 4 blocks:<\/span>\r\n<span class=\"c1\">#plt.quiver(b[0], b[1], (a[0]-b[0]), 0, color='b', units='xy', scale=1) <\/span>\r\n\r\n<span class=\"n\">plt<\/span><span class=\"o\">.<\/span><span class=\"n\">quiver<\/span><span class=\"p\">(<\/span><span class=\"n\">a<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">],<\/span><span class=\"n\">b<\/span><span class=\"p\">[<\/span><span class=\"mi\">1<\/span><span class=\"p\">],<\/span> <span class=\"mi\">0<\/span><span class=\"p\">,(<\/span><span class=\"n\">a<\/span><span class=\"p\">[<\/span><span class=\"mi\">1<\/span><span class=\"p\">]<\/span><span class=\"o\">-<\/span><span class=\"n\">b<\/span><span class=\"p\">[<\/span><span class=\"mi\">1<\/span><span class=\"p\">]),<\/span>  <span class=\"n\">color<\/span><span class=\"o\">=<\/span><span class=\"s1\">'g'<\/span><span class=\"p\">,<\/span> <span class=\"n\">units<\/span><span class=\"o\">=<\/span><span class=\"s1\">'xy'<\/span><span class=\"p\">,<\/span> <span class=\"n\">scale<\/span><span class=\"o\">=<\/span><span class=\"mi\">1<\/span><span class=\"p\">)<\/span> \r\n\r\n\r\n<span class=\"n\">plt<\/span><span class=\"o\">.<\/span><span class=\"n\">axis<\/span><span class=\"p\">(<\/span><span class=\"s1\">'equal'<\/span><span class=\"p\">)<\/span>  <span class=\"c1\">## This is important to get the display correct<\/span>\r\n<span class=\"n\">plt<\/span><span class=\"o\">.<\/span><span class=\"n\">title<\/span><span class=\"p\">(<\/span><span class=\"s1\">'Manhattan Distance between 2 points'<\/span><span class=\"p\">)<\/span> \r\n\r\n<span class=\"n\">plt<\/span><span class=\"o\">.<\/span><span class=\"n\">xticks<\/span><span class=\"p\">(<\/span><span class=\"nb\">range<\/span><span class=\"p\">(<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"p\">,<\/span><span class=\"mi\">8<\/span><span class=\"p\">))<\/span>\r\n<span class=\"n\">plt<\/span><span class=\"o\">.<\/span><span class=\"n\">yticks<\/span><span class=\"p\">(<\/span><span class=\"nb\">range<\/span><span class=\"p\">(<\/span><span class=\"o\">-<\/span><span class=\"mi\">5<\/span><span class=\"p\">,<\/span><span class=\"mi\">8<\/span><span class=\"p\">))<\/span>\r\n\r\n\r\n<span class=\"c1\"># Show plot with grid <\/span>\r\n<span class=\"n\">plt<\/span><span class=\"o\">.<\/span><span class=\"n\">grid<\/span><span class=\"p\">()<\/span> \r\n\r\n<span class=\"c1\">##always important to actually display!<\/span>\r\n<span class=\"n\">plt<\/span><span class=\"o\">.<\/span><span class=\"n\">show<\/span><span class=\"p\">()<\/span> \r\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell-outputWrapper\">\n<div class=\"jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser\"><\/div>\n<div class=\"jp-OutputArea jp-Cell-outputArea\">\n<div class=\"jp-OutputArea-child\">\n<div class=\"jp-OutputPrompt jp-OutputArea-prompt\"><\/div>\n<div class=\"jp-RenderedText jp-OutputArea-output\" data-mime-type=\"text\/plain\">\n<pre>The Manhattan norm is  7.0\r\n<\/pre>\n<\/div>\n<\/div>\n<div class=\"jp-OutputArea-child\">\n<div class=\"jp-OutputPrompt jp-OutputArea-prompt\"><\/div>\n<div class=\"jp-RenderedImage jp-OutputArea-output\"><img decoding=\"async\" class=\"jp-needs-light-background\" src=\"image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAXYAAAEICAYAAABLdt\/UAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+\/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAa0ElEQVR4nO3dfZRcdZ3n8fcnzyHdJAP0hECzRILJ4UHlIUIclzGNuPIoA6ssMKODA5MlC3PgCGdgRPeAMDJG1sF1GR4Eh\/gATFB0ADkijGmYjCAkBIEQkIQBiSQgAQIdCSHp7\/5xb4dKU91VSd3ue+vW53VOnVTVvfWrb9+6\/a1ffe7tiiICMzMrjxF5F2BmZtlyYzczKxk3djOzknFjNzMrGTd2M7OScWM3MysZN\/YmIuliSd\/Pu44sSbpG0pfzrmN7SJotaVXedZSBpB5Je+VdR1m4sWdE0nOSNkrapd\/9j0oKSVPzqWxLHadJWtTvvhslXTaEz\/mcpLckvSnpdUm\/lHSmpC37XUScGRGX1jnWEUNV63BrhjcFScdIWpS+dmskfVtS+1A8V0S0RcSzddYVkvYeijrKwo09W\/8JnNJ3Q9IHgPH5lVMIx0VEO7An8A\/ABcAN+ZZkdZoIXAbsBuwDdAJfz7Uiq09E+JLBBXgO+BLwcMV9VwAXAQFMTe87BlgKvAG8AFxcsf7UdN2\/BH4LvAJcVLH8YmAB8F3gTWAZMLNi+YXAynTZk8AJ6f37ABuAzUAP8DowB3gH2Jjed8dgY6TLTgMWpT\/XayRvZEfV2CZH9LvvEKAX2D+9fSNwWXp9F+DOtL5XgX8nmXx8L33MW2mtf5uufyuwBlgH3A\/sV\/E8NwJXAT9Nf5ZfAdMqlu8H3JM+z0vAF9P7R1Rsg7Xp9t5pgJ9vNrAK+GL6Wj0H\/HnF8rHptvpt+hzXkLzRT0h\/lt705+khaZ5vAbukj\/0SsAnYMb19GXDlYONWPO+xwKPpdvwl8MF+r8n5wGPpdvsXYFyd+\/iJwOM1Xu+\/S\/eb14B\/rhwb+GtgRbrNbwd2q1gWwN61Xrv0dQ5gfbrd\/sdA+03ePSHXfpR3AWW5pDv1EcDTJI10JEnj3pOtG\/ts4ANpA\/lg+ov5Z+myqem6304bwIeAt4F90uUXkzToo9PxLwcerKjhM2mDGJHu8OuBKemy04BF\/Wq+kbSpbsMY76S\/oCOBucCLgAbbJlXu\/y0wt38N6c9zDTA6vRzWN3a1sYC\/AtpJGt2VwKP9frZXSd5IRgE\/AG5Jl7UDq4HzgHHp7UPTZecCD5LMTscC1wI3D\/DzzSZpvt9I1\/1Yur1mpMuvJGlgO6XPcQdwecVjV\/Ub737gv6fXf07y5nJUxbIT6hj3IOBl4ND0NfrLdNuNrdiOD6Wv8U7AcuDMOvfxK\/u24SCv9xPAHunY\/1Hx2h5O8uZ3ULqtvgXcX\/HY\/o296mvXf91a+02rXnIvoCwX3m3sX0p3tCNJZoSjqGjsVR53JfCP6fWp6bqdFcsfAk5Or18M3FuxbF\/grUFqehQ4Pr1+GnU09jrGWFGxbIe03l0H2yZV7n+Q9JMIWzf2rwD\/WvlLW2usiuWT0lomVox7fcXyo4Gn0uunAEsHGGc58PGK21NI3sxGVVl3Nkljn1Bx3wLgy4BImnzlp4SPAP9Z8dj+jf1S4P+m+8wa4ByS+Goc6Wy+jnGvBi7tN+7TwMcqtuNfVCybB1xTx\/79CZJZ+PQavwNnVtw+GliZXr8BmFexrC3drlPT2\/0be9XXrv+6tfabVr04Y8\/e94BTSZrgd\/svlHSopIWSfi9pHXAmyS9spTUV1\/9A8ksw0LJxkkalY38uPVj7uqTXgf2rjD2oOsbY8vwR8Yf0amV99didZEbW39dJPqr\/XNKzki4cpM6Rkv5B0kpJb5A0FQaqla234x4ks+Fq9gR+XPHzLyeJsCYPsP5rEbG+4vbzJLPhDpI3viUVY\/0svX8g95E0\/IOAx0kmBh8DZpG8ob5Sx7h7Auf1LUuX75HW1Gew\/es9JM0CbgI+HRG\/GWxdkk+pffq2Bem\/z\/ctiIgekqhr9wHG2ZYa695vWoUbe8Yi4nmS7Plo4LYqq9xE8jF6j4iYSPIRUo0+r6Q9SSKcs4GdI2ISycfivrGjWrnbOEbDJH2Y5Jd5Uf9lEfFmRJwXEXsBxwFfkPTxAeo\/FTie5FPSRJJPO9RZ6wvAtEGWHRURkyou4yLidwOs\/0eSJlTc\/i8k8dQrJLPs\/SrGmRgRfQ2q2uvxS2AGcAJwX0Q8mY53DEnTp45xXwD+vl\/9O0TEzbU2SjWSDiTZX\/8qIv6tjofsUXG9b1uQ\/rtnxbgTgJ2BgbZr3WrsNy3JjX1onA4c3m8m16cdeDUiNkg6hKRBZWECSbP4PYCkz5PMtvu8BHRKGtPvvspzh2uNsd0k7SjpWOAW4PsR8XiVdY6VtLckkRxc3pxeqtXaTnL8YS3JDPar21DOncCuks6VNFZSu6RD02XXAH+fvskhqUPS8TXGu0TSGEmHkRy4vDUiekneJP9R0h+nY+0u6ZMVP8\/Okib2DZJ+AloCnMW7jfyXwP\/su13HuN8Gzkw\/GUrShPS0xW0+TVHS\/iSfBv4mIu6o82FnSeqUtBPJQeV\/Se+\/Cfi8pAMkjSV5vX4VEc9ta1302xdq7DctyY19CETEyohYPMDi\/wV8RdKbwP8myWSzeM4ngf8DPECy43+A5OBVn1+QnEWzRtIr6X03APumH9l\/UscY2+OO9Gd9geQMoW8Anx9g3fcD95Kc7fAA8E8R0Z0uuxz4Ulrr+SQx1\/MkM74nSXL7ukTEmySZ8XEkH\/mfAbrSxd8kmaH+PK37QZIDkQNZQ5I9v0hykO\/MiHgqXXYBSUTwYBoX3UsyIydd52bg2fRn6oss7iM5APhQxe12koOn1DHuYpKD2\/8vrWsFSSy4Pc4jiXhuSP+AqEfSshqPuYnkwO+z6eWytK5\/Izn28COSA9fTgJO3s66LgfnpdjuJwfebltR3xoGZWUMkPQecERH35l1Lq\/OM3cysZNzYzcxKxlGMmVnJeMZuZlYyo\/J40kmTJsXeexf\/y9nWr1\/PhAkTaq+YM9eZnWaoEVxn1pqlziVLlrwSEYP9kRuQU2OfPHkyixcPdDZgcXR3dzN79uy8y6jJdWanGWoE15m1ZqlT0vO113IUY2ZWOm7sZmYl48ZuZlYybuxmZiXjxm5mVjJu7GZmJePGbmZWMm7sZmYl48ZuZlYybuxmZiXjxm5mVjJu7GZmJePGbmZWMm7sZmYl48ZuZlYybuxmZiXjxm5mVjJu7GZmJePGbmZWMm7sZmYl03BjlzRO0kOSfi1pmaRLsijMzAawejUHnHMOrFmTdyVWUFnM2N8GDo+IDwEHAEdKmpXBuGZWzaWXMvHxx+ErX8m7Eiuohht7JHrSm6PTSzQ6rpn1M348SHD11SgCrr46uT1+fN6VWcEoovEeLGkksATYG7gqIi6oss4cYA5AR0fHwQsWLGj4eYdaT08PbW1teZdRk+vMTpFrHLN2LdOuuoo\/7u5GEWweO5ZXDjuMlXPnsnGnnfIur6oib89KzVJnV1fXkoiYWXPFiMjsAkwCFgL7D7be9OnToxksXLgw7xLq4jqzU\/ga99svAmLTqJERI0ZEzJ2bd0WDKvz2TDVLncDiqKMXj8ry3SQiXpfUDRwJPJHl2GYt79ZbYdkyXt57N34x53Oc\/NwbsHp13lVZATXc2CV1AO+kTX08cATwtYYrM7N3rVgBp58Os2bx52eM5cgddmHl6WcwbadpeVdmBZTFWTFTgIWSHgMeBu6JiDszGNfMADZsgJNOglGjWHfjtXS\/+B8A3Pkb\/5pZdVmcFfNYRBwYER+MiP0jwudgmWXp\/PNh6VKYP5+fvbOcTb2bALjjN3fkXJgVlf\/y1KzIbr0VrroKzjsPjjtuq2Z+3\/P3sW7DuhyLs6JyYzcrqopcncsvZ1PvJu565q4tizf1buLulXfnWKAVlRu7WRFV5OrccguMHs0DLzzAaxte22o15+xWTaanO5pZRvpy9dtvhz33BKpn6nc9cxebezczcsTI4a7QCswzdrOi6Zer96nW2Ne+tZYHVj0wnNVZE3BjNyuSfrn6lrtfXcFTrzzFlLYpW+7btW1XAO542mfH2Nbc2M2Kokqu3uexlx7j2mOv5bG5j2257wuzvsDDf\/0w4e\/cs36csZsVRZVcvc+J+5wIwBtvv7HV\/TN3m8nM3Wp\/J5S1Fs\/YzYpggFzdbHu4sZvlbYBc3Wx7ubGb5WmQXN1sezljN8vTILm62fbyjN0sL87VbYi4sZvlwbm6DSE3drPh5lzdhpgzdrPh5lzdhphn7GbDybm6DQM3drPh4lzdhokbu9lwcK5uw8gZu9lwcK5uw8gzdrOh5lzdhpkbu9lQcq5uOXBjNxsqztUtJ87YzYaKc3XLiWfsZkPBubrlyI3dLGvO1S1nbuxmWXKubgXgjN0sS87VrQA8YzfLinN1Kwg3drMsOFe3AnFjN2uUc3UrGGfsZo1yrm4F4xm7WSOcq1sBNdzYJe0haaGk5ZKWSToni8LMCs+5uhVUFlHMJuC8iHhEUjuwRNI9EfFkBmObFZNzdSuwhht7RKwGVqfX35S0HNgdcGO38nKubgWmiMhuMGkqcD+wf0S80W\/ZHGAOQEdHx8ELFizI7HmHSk9PD21tbXmXUZPrzE49NXZ0d7PfJZfwwkknsXLu3GGqLNEbvSxds5TOsZ0wFiZPmDysz7+tmuE1h+aps6ura0lEzKy5YkRkcgHagCXAibXWnT59ejSDhQsX5l1CXVxndmrW+MwzEe3tEbNmRWzcOCw1VVq3YV1wMXHFTVfEvEXzhv35t1UzvOYRzVMnsDjq6MeZnBUjaTTwI+AHEXFbFmOaFY5zdWsSDWfskgTcACyPiG80XpJZQTlXtyaRxYz9o8BngcMlPZpejs5gXLPi8Pnq1kSyOCtmEaAMajErJp+vbk3Gf3lqNhjn6taE\/F0xZoNxrm5NyDN2s4E4V7cm5cZuVo1zdWtibuxm\/TlXtybnjN2sP+fq1uQ8Yzer0NHd7Vzdmp4bu1mfFSuY8fWvO1e3pufGbgZbcvUYOdK5ujU9N3Yz2JKrP3Xhhc7Vrem5sZtVnK++9k\/+JO9qzBrmxm6tzeerWwm5sVvr8vnqVlI+j91al89Xt5LyjN1ak78HxkrMjd1aj3N1Kzk3dmstztWtBThjt9biXN1agGfs1jqcq1uLcGO31uBc3VqIG7uVn3N1azHO2K38nKtbi\/GM3crNubq1IDd2Ky\/n6tai3NitnJyrWwtzxm7l5FzdWphn7FY+ztWtxbmxW7k4VzdzY7cSca5uBjhjtzJxrm4GeMZuZeFc3WwLN3Zrfs7Vzbbixm7Nzbm62Xtk0tglfUfSy5KeyGI8s7r15erz5ztXN0tlNWO\/ETgyo7HM6uNc3ayqTBp7RNwPvJrFWGZ1ca5uNiBFRDYDSVOBOyNi\/wGWzwHmAHR0dBy8YMGCTJ53KPX09NDW1pZ3GTW1Wp0jNm7kwLPPZtyaNSy+7jre3nXXDKpLFH1b9kYvS9cspXNsJ4yFyRMm513SoIq+Pfs0S51dXV1LImJmzRUjIpMLMBV4op51p0+fHs1g4cKFeZdQl5ar86yzIiDi9tuzGa9C0bflug3rgouJK266IuYtmpd3OTUVfXv2aZY6gcVRR4\/1WTHWXJyrm9Xkxm7Nw7m6WV2yOt3xZuABYIakVZJOz2Jcsy18vrpZ3TL5rpiIOCWLccwG5O+BMauboxgrPufqZtvEjd2Kzbm62TZzY7ficq5utl38fexWXM7VzbaLZ+xWTM7VzbabG7sVj3N1s4a4sVuxOFc3a5gzdisW5+pmDfOM3YrDubpZJtzYrRicq5tlxo3d8udc3SxTztgtf87VzTLlGbvly7m6Webc2C0\/ztXNhoQbu+XDubrZkHHGbvlwrm42ZDxjt+HnXN1sSLmx2\/Byrm425NzYbdiM2LjRubrZMHDGbsNm2tVXO1c3GwaesdvwuPVWdv\/JT5yrmw0DN3Ybemmuvm7ffZ2rmw0DN3YbWhXnqz\/55S87VzcbBs7YbWhVnK\/+dnt73tWYtQTP2G3o+Hx1s1y4sdvQ8PnqZrlxY7fs+XtgzHLljN2y5++BMcuVZ+yWLefqZrlzY7fsOFc3KwQ3dsuGc3WzwnDGbtlwrm5WGJ6xW+Ocq5sVSiaNXdKRkp6WtELShVmMaU3CubpZ4TTc2CWNBK4CjgL2BU6RtG+j41oTcK5uVkhZzNgPAVZExLMRsRG4BTg+g3Gt6Ppy9fnznaubFYgiorEBpE8DR0bEGentzwKHRsTZ\/dabA8wB6OjoOHjBggUNPe9w6Onpoa2tLe8yasqjzo7ubva75BJeOOkkVs6dW9djmmF7Fr3G3uhl6ZqldI7thLEwecLkvEsaVNG3Z59mqbOrq2tJRMysuWJENHQBPgNcX3H7s8C3BnvM9OnToxksXLgw7xLqMux1PvNMRHt7xKxZERs31v2wZtieRa9x3YZ1wcXEFTddEfMWzcu7nJqKvj37NEudwOKooy9nEcWsAvaouN0JvJjBuFZEztXNCi+L89gfBt4v6X3A74CTgVMzGNeKyOermxVew409IjZJOhu4GxgJfCciljVcmRWPz1c3awqZ\/OVpRNwF3JXFWFZQPl\/drGn4L0+tNufqZk3F3xVjtTlXN2sqnrHb4JyrmzUdN3YbmHN1s6bkxm7VOVc3a1rO2K065+pmTcszdnsv5+pmTc2N3bbmXN2s6bmx27ucq5uVgjN2e5dzdbNS8IzdEs7VzUrDjd2cq5uVjBt7q3OublY6zthbnXN1s9LxjL2VOVc3KyU39lblXN2stNzYW5FzdbNSc8beipyrm5WaZ+ytxrm6Wem5sbcS5+pmLcGNvVU4VzdrGc7YW4VzdbOW4Rl7K3CubtZS3NjLzrm6WctxYy8z5+pmLckZe5k5VzdrSZ6xl5VzdbOW5cZeRs7VzVqaG3vZOFc3a3nO2MvGubpZy\/OMvUycq5sZbuzl4VzdzFJu7CUwYuNG5+pNbNUqOOoo+OY34dln867GyqChxi7pM5KWSeqVNDOromwbrF7NoaeemuTq8+c7V29CnZ2w225w7rkwbRrstx9ccAEsWgSbN+ddnTWjRg+ePgGcCFybQS22Hd789Gm0r13Lml0\/xHcePw4ez7uige21F3z1q3lXMbi8ahxV8Zv45JPJZd482HlnOPro5JDJJz8JjB3+2qz5NNTYI2I5gKRsqrH6jR8PGzbQnt7cdc2v+eJF4i3GsQNv5VraQK64Ai66KO8qBle0Gteuhe99L7mMHg3\/tWsk7\/vYoUwYPYG29ra8y7OCUkQ0PojUDZwfEYsHWWcOMAego6Pj4AULFjT8vEOtp6eHtrZi\/vKMWbuWaVddRcd99zOidzPvjB7LMx84jPuOncsfdtwp7\/Kq6uzsYdWqYm7PPkWtccwYmDgRJk2C9nZYv764+2alIv8OVWqWOru6upZERM3Yu+aMXdK9wK5VFl0UEf9ab0ERcR1wHcCMGTNi9uzZ9T40N93d3RS6znvvJe67j81jxjBq0ztMP\/j9vO\/CE\/OuakAPPtjNpz41O+8yBpVXjT\/8IXzuc1vf9+EPJxHMscfCAQdA5Qfjwu+bKdeZj5qNPSKOGI5CbDu89BI680weOfBAPrx0KaNWr2bU+LyLGpiUJEhFlkeNvb3wta\/BDjvAJz6RNPJjjoEpU4a3DisP\/+VpM7vtNgDWd3fDGWfkW4tttzVrkgOlXV3Ff+Oz5tBQY5d0AvAtoAP4qaRHI+KTmVRm1iJ22y25mGWl0bNifgz8OKNazMwsA\/7LUzOzknFjNzMrGTd2M7OScWM3MysZN3Yzs5JxYzczKxk3djOzknFjNzMrGTd2M7OScWM3MysZN3Yzs5JxYzczKxk3djOzknFjNzMrGTd2M7OScWM3MysZN3Yzs5JxYzczKxk3djOzklFEDP+TSm8CTw\/7E2+7XYBX8i6iDq4zO81QI7jOrDVLnTMior3WSg39Z9YNeDoiZub03HWTtNh1ZqcZ6myGGsF1Zq2Z6qxnPUcxZmYl48ZuZlYyeTX263J63m3lOrPVDHU2Q43gOrNWqjpzOXhqZmZDx1GMmVnJuLGbmZVMbo1d0mckLZPUK6lQpxlJOlLS05JWSLow73oGIuk7kl6W9ETetQxE0h6SFkpanr7e5+RdUzWSxkl6SNKv0zovybumwUgaKWmppDvzrmUgkp6T9LikR+s9TW+4SZok6YeSnkr30Y\/kXVN\/kmak27Dv8oakcwd9TF4Zu6R9gF7gWuD8iCjECy9pJPAb4BPAKuBh4JSIeDLXwqqQ9KdAD\/DdiNg\/73qqkTQFmBIRj0hqB5YAf1a07SlJwISI6JE0GlgEnBMRD+ZcWlWSvgDMBHaMiGPzrqcaSc8BMyOisH\/4I2k+8O8Rcb2kMcAOEfF63nUNJO1PvwMOjYjnB1ovtxl7RCyPiCL+9ekhwIqIeDYiNgK3AMfnXFNVEXE\/8GredQwmIlZHxCPp9TeB5cDu+Vb1XpHoSW+OTi+FPLNAUidwDHB93rU0M0k7An8K3AAQERuL3NRTHwdWDtbUwRl7NbsDL1TcXkUBG1EzkjQVOBD4Vb6VVJfGG48CLwP3REQh6wSuBP6W5BNvkQXwc0lLJM3Ju5gq9gJ+D\/xzGmtdL2lC3kXVcDJwc62VhrSxS7pX0hNVLoWcAadU5b5CztyaiaQ24EfAuRHxRt71VBMRmyPiAKATOERS4eItSccCL0fEkrxrqcNHI+Ig4CjgrDQ6LJJRwEHA1RFxILAeKPIxtTHAp4Bba607pN8VExFHDOX4Q2QVsEfF7U7gxZxqKYU0s\/4R8IOIuC3vemqJiNcldQNHAkU7MP1R4FOSjgbGATtK+n5E\/EXOdb1HRLyY\/vuypB+TxJz351vVVlYBqyo+mf2QAjd2kjfIRyLipVorOop5r4eB90t6X\/oOeTJwe841Na30oOQNwPKI+Ebe9QxEUoekSen18cARwFP5VvVeEfF3EdEZEVNJ9s1fFLGpS5qQHiwnjTf+GwV7k4yINcALkmakd30cKNRB\/X5OoY4YBvI93fEESauAjwA\/lXR3XrVUiohNwNnA3SQH+hZExLJ8q6pO0s3AA8AMSasknZ53TVV8FPgscHjF6VpH511UFVOAhZIeI3lzvyciCnsqYROYDCyS9GvgIeCnEfGznGuq5m+AH6Sv+wHAV3OupypJO5CcqVfXJ15\/pYCZWck4ijEzKxk3djOzknFjNzMrGTd2M7OScWM3MysZN3Yzs5JxYzczK5n\/DzSuexhd022zAAAAAElFTkSuQmCC#fixme\" alt=\"image\" \/><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell jp-MarkdownCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\"><\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\">\n<div class=\"jp-InputPrompt jp-InputArea-prompt\"><\/div>\n<div class=\"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput\" data-mime-type=\"text\/markdown\">\n<h2 id=\"Now-that-looks-like-a-triangle!\">Now that looks like a triangle!<a class=\"anchor-link\" href=\"#Now-that-looks-like-a-triangle!\">\u00b6<\/a><\/h2>\n<p>But it&#8217;s 7 blocks &#8211; 3 to the right, and 4 up. Phew! Are there more?<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell jp-MarkdownCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\"><\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\">\n<div class=\"jp-InputPrompt jp-InputArea-prompt\"><\/div>\n<div class=\"jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput\" data-mime-type=\"text\/markdown\">\n<h2 id=\"What-about-L3?\">What about L3?<a class=\"anchor-link\" href=\"#What-about-L3?\">\u00b6<\/a><\/h2>\n<p>The L3 distance between two points [latex](x_1, y_1)[\/latex] and [latex](x_2, y_2)[\/latex] is given by:<\/p>\n<p>$$\\|(x_2, y_2)-(x_1, y_1)\\|= d = \\sqrt[3]{(x_2-x_1)^3+(y_2-y_1)^3}$$<\/p>\n<p>For example:<\/p>\n<p>$$\\|(4, 3)-(3,-1)\\|= d = \\sqrt[3]{(4-1)^3+(3+1)^3}= \\sqrt[3]{4.4979} = ?$$<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell jp-CodeCell jp-Notebook-cell\">\n<div class=\"jp-Cell-inputWrapper\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\"><\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\">\n<div class=\"jp-InputPrompt jp-InputArea-prompt\">In\u00a0[17]:<\/div>\n<div class=\"jp-CodeMirrorEditor jp-Editor jp-InputArea-editor\" data-type=\"inline\">\n<div class=\"CodeMirror cm-s-jupyter\">\n<div class=\"highlight hl-ipython3\">\n<pre><span class=\"c1\">## Try ord = 3.....  <\/span>\r\n\r\n<span class=\"c1\">## arithmatic from above:<\/span>\r\n\r\n<span class=\"n\">ans<\/span> <span class=\"o\">=<\/span> <span class=\"p\">((<\/span><span class=\"mi\">3<\/span><span class=\"p\">)<\/span><span class=\"o\">**<\/span><span class=\"mi\">3<\/span><span class=\"o\">+<\/span><span class=\"p\">(<\/span><span class=\"mi\">4<\/span><span class=\"p\">)<\/span><span class=\"o\">**<\/span><span class=\"mi\">3<\/span><span class=\"p\">)<\/span><span class=\"o\">**<\/span><span class=\"p\">(<\/span><span class=\"mi\">1<\/span><span class=\"o\">\/<\/span><span class=\"mi\">3<\/span><span class=\"p\">)<\/span>\r\n<span class=\"c1\">## a**b is like a^b -&gt; to the power of<\/span>\r\n\r\n<span class=\"nb\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">\"Using arithmatic, the answer is \"<\/span><span class=\"p\">,<\/span> <span class=\"n\">ans<\/span><span class=\"p\">)<\/span>\r\n<span class=\"c1\">##Can I do this in Python?  Sure!  set ord = 3<\/span>\r\n\r\n<span class=\"nb\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">\"The L3 norm is \"<\/span><span class=\"p\">,<\/span><span class=\"n\">norm<\/span><span class=\"p\">(<\/span><span class=\"n\">a<\/span><span class=\"o\">-<\/span><span class=\"n\">b<\/span><span class=\"p\">,<\/span> <span class=\"nb\">ord<\/span> <span class=\"o\">=<\/span><span class=\"mi\">3<\/span><span class=\"p\">))<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell-outputWrapper\">\n<div class=\"jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser\"><\/div>\n<div class=\"jp-OutputArea jp-Cell-outputArea\">\n<div class=\"jp-OutputArea-child\">\n<div class=\"jp-OutputPrompt jp-OutputArea-prompt\"><\/div>\n<div class=\"jp-RenderedText jp-OutputArea-output\" data-mime-type=\"text\/plain\">\n<pre>Using arithmatic, the answer is  4.497941445275415\r\nThe L3 norm is  4.497941445275415\r\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs\">\n<div class=\"jp-Cell-inputWrapper\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\"><\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\">\n<div class=\"jp-InputPrompt jp-InputArea-prompt\">In\u00a0[2]:<\/div>\n<div class=\"jp-CodeMirrorEditor jp-Editor jp-InputArea-editor\" data-type=\"inline\">\n<div class=\"CodeMirror cm-s-jupyter\">\n<div class=\"highlight hl-ipython3\">\n<pre><span class=\"o\">?<\/span>norm\r\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs\">\n<div class=\"jp-Cell-inputWrapper\">\n<div class=\"jp-Collapser jp-InputCollapser jp-Cell-inputCollapser\"><\/div>\n<div class=\"jp-InputArea jp-Cell-inputArea\">\n<div class=\"jp-InputPrompt jp-InputArea-prompt\">In\u00a0[\u00a0]:<\/div>\n<div class=\"jp-CodeMirrorEditor jp-Editor jp-InputArea-editor\" data-type=\"inline\">\n<div class=\"CodeMirror cm-s-jupyter\">\n<div class=\"highlight hl-ipython3\">\n<pre> \r\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":883,"menu_order":11,"template":"","meta":{"pb_show_title":"on","pb_short_title":"","pb_subtitle":"","pb_authors":[],"pb_section_license":""},"chapter-type":[],"contributor":[],"license":[],"class_list":["post-427","chapter","type-chapter","status-publish","hentry"],"part":102,"_links":{"self":[{"href":"https:\/\/pressbooks.bccampus.ca\/businessanalytics\/wp-json\/pressbooks\/v2\/chapters\/427","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pressbooks.bccampus.ca\/businessanalytics\/wp-json\/pressbooks\/v2\/chapters"}],"about":[{"href":"https:\/\/pressbooks.bccampus.ca\/businessanalytics\/wp-json\/wp\/v2\/types\/chapter"}],"author":[{"embeddable":true,"href":"https:\/\/pressbooks.bccampus.ca\/businessanalytics\/wp-json\/wp\/v2\/users\/883"}],"version-history":[{"count":2,"href":"https:\/\/pressbooks.bccampus.ca\/businessanalytics\/wp-json\/pressbooks\/v2\/chapters\/427\/revisions"}],"predecessor-version":[{"id":429,"href":"https:\/\/pressbooks.bccampus.ca\/businessanalytics\/wp-json\/pressbooks\/v2\/chapters\/427\/revisions\/429"}],"part":[{"href":"https:\/\/pressbooks.bccampus.ca\/businessanalytics\/wp-json\/pressbooks\/v2\/parts\/102"}],"metadata":[{"href":"https:\/\/pressbooks.bccampus.ca\/businessanalytics\/wp-json\/pressbooks\/v2\/chapters\/427\/metadata\/"}],"wp:attachment":[{"href":"https:\/\/pressbooks.bccampus.ca\/businessanalytics\/wp-json\/wp\/v2\/media?parent=427"}],"wp:term":[{"taxonomy":"chapter-type","embeddable":true,"href":"https:\/\/pressbooks.bccampus.ca\/businessanalytics\/wp-json\/pressbooks\/v2\/chapter-type?post=427"},{"taxonomy":"contributor","embeddable":true,"href":"https:\/\/pressbooks.bccampus.ca\/businessanalytics\/wp-json\/wp\/v2\/contributor?post=427"},{"taxonomy":"license","embeddable":true,"href":"https:\/\/pressbooks.bccampus.ca\/businessanalytics\/wp-json\/wp\/v2\/license?post=427"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}