{ "metadata": { "name": "", "signature": "sha256:45411f688a31b9c0a5990139381e6a0bb3fee065637f2fd9a76a087945b8a71c" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "In this post, we will try to solve [project Euler problem 66](https://projecteuler.net/problem=66) called \"Diophantine equation\". It revolves around the following equation:\n", "\n", "$$\n", "x^2 \u2013 D \\, y^2 = 1\n", "$$\n", "\n", "Some help is provided by the text:\n", "\n", "- no solutions when $D$ is square\n", "- we're talking about minimal solutions to this equation\n", "\n", "What we need to do in order to solve the problem question is two-fold:\n", "\n", "- solve the above Diophantine equation\n", "- explore the solutions to find the one requested by the problem text for varying $D$" ] }, { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Solving the Diophantine equation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Wikipedia has a nice link about this equation, which is called [Pell's equation](http://en.wikipedia.org/wiki/Pell%27s_equation). Geometrically, this equation ressembles a parabola." ] }, { "cell_type": "code", "collapsed": false, "input": [ "from pylab import *\n", "%matplotlib inline" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 1 }, { "cell_type": "code", "collapsed": false, "input": [ "from IPython.html.widgets import interact" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 2 }, { "cell_type": "code", "collapsed": false, "input": [ "y = linspace(0, 20)\n", "\n", "def plot_equation(D):\n", " x_plus = sqrt(1 + D * y**2)\n", " x_minus = -sqrt(1 + D * y**2)\n", " plot(x_plus, y)\n", " plot(x_minus, y)\n", " plot(x_plus, -y)\n", " plot(x_minus, -y)\n", " grid(True)\n", " xlim(-y.max(), y.max())\n", " ylim(-y.max(), y.max())" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 7 }, { "cell_type": "code", "collapsed": false, "input": [ "interact(plot_equation,\n", " D=(1, 10))" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\n+yoFCAAAAABJRU5ErkJggg==\n", "text": [ "" ] } ], "prompt_number": 8 }, { "cell_type": "markdown", "metadata": {}, "source": [ "As one can see from the plots below, the higher D, the smaller the angle of the upward pointing branches of the graphical form:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "figure(figsize=(10, 4))\n", "subplot(131)\n", "plot_equation(1)\n", "title('$D = 1$')\n", "subplot(132)\n", "plot_equation(10)\n", "title('$D = 10$')\n", "subplot(133)\n", "plot_equation(100)\n", "title('$D = 100$')" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 9, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 9 }, { "cell_type": "markdown", "metadata": {}, "source": [ "We are looking for minimal solutions which I gather from wikipedia can be obtained via an algorithm converging to the square root of D using continued fractions. We use the following recurrence equations:\n", "\n", "$$\n", "\\begin{align}\n", "A_{-1}& = 1& B_{-1}& = 0\\\\\n", "A_0& = b_0& B_0& = 1\\\\\n", "A_{n+1}& = b_{n+1} A_n + a_{n+1} A_{n-1}& B_{n+1}& = b_{n+1} B_n + a_{n+1} B_{n-1}\\,\n", "\\end{align}\n", "$$" ] }, { "cell_type": "code", "collapsed": false, "input": [ "def converge_to_sqrt(D):\n", " " ], "language": "python", "metadata": {}, "outputs": [ { "ename": "IndentationError", "evalue": "expected an indented block (, line 2)", "output_type": "pyerr", "traceback": [ "\u001b[1;36m File \u001b[1;32m\"\"\u001b[1;36m, line \u001b[1;32m2\u001b[0m\n\u001b[1;33m \u001b[0m\n\u001b[1;37m ^\u001b[0m\n\u001b[1;31mIndentationError\u001b[0m\u001b[1;31m:\u001b[0m expected an indented block\n" ] } ], "prompt_number": 6 }, { "cell_type": "markdown", "metadata": {}, "source": [] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] } ], "metadata": {} } ] }