Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save genkuroki/005988f21f99d0be2aa3e3d754f860b0 to your computer and use it in GitHub Desktop.
Save genkuroki/005988f21f99d0be2aa3e3d754f860b0 to your computer and use it in GitHub Desktop.
Julia/Misc/Duplication formula を満たす謎の函数.ipynb
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"metadata": {},
"cell_type": "markdown",
"source": "# f(2x)f(x+1/2)=f(x)を満たす謎の函数"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "![](woods1979_01.jpg)"
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "using PyPlot\nusing SymPy\n@vars t\nusing BenchmarkTools",
"execution_count": 2,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "function F(m,n,x)\n if n == 0\n return x+m-1\n else\n return F(2m-1,n-1,x)/F(2m,n-1,x)\n end\nend\nF(1,4,1.0)",
"execution_count": 3,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 3,
"data": {
"text/plain": "0.7061728395061727"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "F(n,x) = F(1,n,x)",
"execution_count": 4,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 4,
"data": {
"text/plain": "F (generic function with 2 methods)"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "@time for n in 1:7\n @printf(\"%50s = %f\\n\", F(n,Rational{BigInt}(1)), F(n,1.0))\nend",
"execution_count": 5,
"outputs": [
{
"output_type": "stream",
"text": " 1//2 = 0.500000\n 2//3 = 0.666667\n 7//10 = 0.700000\n 286//405 = 0.706173\n 144305//204102 = 0.707024\n 276620298878//391202754597 = 0.707102\n 4929053594885296570083//6970736012254534531250 = 0.707107\n 0.090895 seconds (54.79 k allocations: 1.909 MiB)\n",
"name": "stdout"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "x = collect(linspace(0,10,101))\nfigure()\nplot(x, F.(1,1,x), linewidth=0.5)\nplot(x, F.(1,2,x), linewidth=0.5)\nplot(x, F.(1,3,x), linewidth=0.5)\nplot(x, F.(1,4,x), linewidth=0.5)\nplot(x, F.(1,5,x), linewidth=0.5)\nplot(x, F.(1,6,x), linewidth=0.5)\nplot(x, F.(1,7,x), linewidth=0.5)",
"execution_count": 14,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": "PyPlot.Figure(PyObject <matplotlib.figure.Figure object at 0x000000002E01ABA8>)",
"image/png": "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Jdq/f7/VJaWUDRs2aPbs2crKylJubq4eeughHT161OqyUt7Pf/5z2Ww2rVy50upSUtKZM2f0ve99T2PHjlVGRoamT5+uDz/80OqyUko0GtXatWtVXFysjIwMTZ48WT/96U/jfngcutqzZ48WLlyogoIC2Ww2/fnPf+7yvmmaWrduncaPH6+MjAyVlpbq888/t6TWYRtOtm/froqKCq1fv17V1dWaMWOGysrKVF9fb3VpKWP37t0qLy/XBx98oF27dqmjo0MPPvigQqGQ1aWlrAMHDuh3v/udbr/9dqtLSUkXL17UvHnzlJaWpn/+85/67LPP9OKLL2r06NFWl5ZSnn/+eb3yyivauHGjDh8+rOeff14vvPCCXn75ZatLu66FQiHNmDFDmzZt6vb9F154QS+99JJeffVV7du3TyNGjFBZWZna2toSXKkkc5iaM2eOWV5eHnsdjUbNgoICc8OGDRZWldrq6+tNSebu3butLiUlBYNBc8qUKeauXbvMe++911yxYoXVJaWc1atXm/fcc4/VZaS8BQsWmI899liXtu985zvm4sWLLaoo9Ugy33rrrdhrwzDM/Px88xe/+EWsrampyXS73ea2bdsSXt+wnDlpb29XVVWVSktLY212u12lpaXau3evhZWlNr/fL0kaM2aMxZWkpvLyci1YsKDLv2sMrr/+9a+aNWuWvvvd7yo3N1d33nmntmzZYnVZKefuu+9WZWWljh07Jkk6ePCg3n//fX3729+2uLLUdfLkSfl8vi7/f3g8HpWUlFhyXUyOc2oTrLGxUdFoVHl5eV3a8/LydOTIEYuqSm2GYWjlypWaN2+ebrvtNqvLSTlvvvmmqqurdeDAAatLSWknTpzQK6+8ooqKCv3oRz/SgQMH9NRTT8nlcmnp0qVWl5cy1qxZo0AgoKlTp8rhcCgajepnP/uZFi9ebHVpKcvn80lSt9fFr99LpGEZTpB45eXlOnTokN5//32rS0k5tbW1WrFihXbt2qX09HSry0lphmFo1qxZeu655yRJd955pw4dOqRXX32VcDKIduzYoTfeeENbt27VtGnTVFNTo5UrV6qgoIBxHiaG5W2dnJwcORwO1dXVdWmvq6tTfn6+RVWlruXLl+vvf/+73n33XRUWFlpdTsqpqqpSfX297rrrLjmdTjmdTu3evVsvvfSSnE6notGo1SWmjPHjx+vWW2/t0nbLLbfo1KlTFlWUmn7wgx9o9erVeuSRRzR9+nQ9+uijWrVqlTZs2GB1aSnr62tfslwXh2U4cblcmjlzpiorK2NthmGosrJSc+fOtbCy1GKappYvX6633npL//73v1VcXGx1SSnp/vvv1yeffKKamprYz6xZs7R48WLV1NTI4XBYXWLKmDdv3lXb4Y8dO6YJEyZYVFFqamlpuerpuA6HQ4ZhWFRR6isuLlZ+fn6X62IgENC+ffssuS4O29s6FRUVWrp0qWbNmqU5c+bo17/+tUKhkJYtW2Z1aSmjvLxcW7du1V/+8hdlZWXF7lt6PB5lZGRYXF3qyMrKumodz4gRIzR27FjW9wyyVatW6e6779Zzzz2nhx9+WPv379fmzZu1efNmq0tLKQsXLtSzzz4rr9eradOm6aOPPtKvfvUrPfbYY1aXdl1rbm7W8ePHY69PnjypmpoajRkzRkVFRVq5cqWeffZZTZkyRcXFxVq7dq0KCgr00EMPJb7YhO8PSiIvv/yyWVRUZLpcLnPOnDnmBx98YHVJKUVStz9/+MMfrC4t5bGVeOj87W9/M2+77TbT7XabU6dONTdv3mx1SSknEAiYK1asMIuKisz09HRz0qRJ5o9//GMzHA5bXdp17d133+32/+SlS5eapnlpO/HatWvNvLw80+12m/fff7959OhRS2q1mSZH7gEAgOQxLNecAACA5EU4AQAASYVwAgAAkgrhBAAAJBXCCQAASCqEEwAAkFQIJwAAIKkQTgAAQFIhnAAAgKRCOAEAAEmFcAIAAJLK/wPlP+JJpGizVgAAAABJRU5ErkJggg=="
},
"metadata": {}
},
{
"output_type": "execute_result",
"execution_count": 14,
"data": {
"text/plain": "1-element Array{Any,1}:\n PyObject <matplotlib.lines.Line2D object at 0x000000002E168D30>"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "f(n,x) = prod(((x+4k)*(x+4k+3)/(x+4k+1)/(x+4k+2))^((-1)^count_ones(k)) for k in 0:n-1)",
"execution_count": 7,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 7,
"data": {
"text/plain": "f (generic function with 1 method)"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "F(4,t)",
"execution_count": 8,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 8,
"data": {
"text/plain": " t*(t + 3)*(t + 5)*(t + 6)*(t + 9)*(t + 10)*(t + 12)*(t + 15) \n------------------------------------------------------------------\n(t + 1)*(t + 2)*(t + 4)*(t + 7)*(t + 8)*(t + 11)*(t + 13)*(t + 14)",
"text/latex": "$$\\frac{t \\left(t + 3\\right) \\left(t + 5\\right) \\left(t + 6\\right) \\left(t + 9\\right) \\left(t + 10\\right) \\left(t + 12\\right) \\left(t + 15\\right)}{\\left(t + 1\\right) \\left(t + 2\\right) \\left(t + 4\\right) \\left(t + 7\\right) \\left(t + 8\\right) \\left(t + 11\\right) \\left(t + 13\\right) \\left(t + 14\\right)}$$"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "f(2^2,t)",
"execution_count": 9,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 9,
"data": {
"text/plain": " t*(t + 3)*(t + 5)*(t + 6)*(t + 9)*(t + 10)*(t + 12)*(t + 15) \n------------------------------------------------------------------\n(t + 1)*(t + 2)*(t + 4)*(t + 7)*(t + 8)*(t + 11)*(t + 13)*(t + 14)",
"text/latex": "$$\\frac{t \\left(t + 3\\right) \\left(t + 5\\right) \\left(t + 6\\right) \\left(t + 9\\right) \\left(t + 10\\right) \\left(t + 12\\right) \\left(t + 15\\right)}{\\left(t + 1\\right) \\left(t + 2\\right) \\left(t + 4\\right) \\left(t + 7\\right) \\left(t + 8\\right) \\left(t + 11\\right) \\left(t + 13\\right) \\left(t + 14\\right)}$$"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "@btime F(20,1.0)",
"execution_count": 10,
"outputs": [
{
"output_type": "stream",
"text": " 9.658 ms (0 allocations: 0 bytes)\n",
"name": "stdout"
},
{
"output_type": "execute_result",
"execution_count": 10,
"data": {
"text/plain": "0.7071067811865741"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "@btime f(2^18,1.0)",
"execution_count": 11,
"outputs": [
{
"output_type": "stream",
"text": " 6.085 ms (4 allocations: 96 bytes)\n",
"name": "stdout"
},
{
"output_type": "execute_result",
"execution_count": 11,
"data": {
"text/plain": "0.7071067811915795"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "1/sqrt(2)",
"execution_count": 12,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 12,
"data": {
"text/plain": "0.7071067811865475"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "@time simplify(F(7,2t)*F(6,t+1//2)/F(6,t))",
"execution_count": 13,
"outputs": [
{
"output_type": "stream",
"text": " 1.675666 seconds (74.25 k allocations: 3.045 MiB)\n",
"name": "stdout"
},
{
"output_type": "execute_result",
"execution_count": 13,
"data": {
"text/plain": "1",
"text/latex": "$$1$$"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true,
"collapsed": true
},
"cell_type": "code",
"source": "",
"execution_count": null,
"outputs": []
}
],
"metadata": {
"gist": {
"id": "",
"data": {
"description": "Julia/Misc/Duplication formula を満たす謎の函数.ipynb",
"public": true
}
},
"kernelspec": {
"name": "julia-0.6",
"display_name": "Julia 0.6.0",
"language": "julia"
},
"language_info": {
"file_extension": ".jl",
"name": "julia",
"mimetype": "application/julia",
"version": "0.6.0"
},
"toc": {
"colors": {
"hover_highlight": "#DAA520",
"navigate_num": "#000000",
"navigate_text": "#333333",
"running_highlight": "#FF0000",
"selected_highlight": "#FFD700",
"sidebar_border": "#EEEEEE",
"wrapper_background": "#FFFFFF"
},
"moveMenuLeft": true,
"nav_menu": {
"height": "12px",
"width": "252px"
},
"navigate_menu": true,
"number_sections": true,
"sideBar": true,
"threshold": 4,
"toc_cell": false,
"toc_section_display": "block",
"toc_window_display": false,
"widenNotebook": false
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment