Update Sierpinski.ipynb

This commit is contained in:
Peter Norvig authored and GitHub committed 2019-03-24 09:46:21 -07:00
1 parent 04e8023207
commit d88dc2880a
1 file changed
+3 -45
+3 -45
View File
@@ -1,10 +1,10 @@
{
>{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div align=\"right\">Peter Norvig</div\n",
"<div align=\"right\">Peter Norvig</div>\n",
"# A Chaos Game with Triangles\n",
"\n",
"John D. Cook [proposed](https://www.johndcook.com/blog/2017/07/08/the-chaos-game-and-the-sierpinski-triangle/) an interesting \"game\" from the book *[Chaos and Fractals](https://smile.amazon.com/Chaos-Fractals-New-Frontiers-Science/dp/0387202293)*: start at a vertex of an equilateral triangle. Then move to a new point halfway between the current point and one of the three vertexes of the triangle, chosen at random. Repeat to create *N* points, and plot them. What do you get? \n",
@@ -291,46 +291,4 @@
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAigAAAIXCAYAAAC2IaX9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsvc+PXUmWHnbLGhmW7foDnoGBBDghWPIAhG1YKMIQBJPL\npDcGy6vqVVV50WQZnqpeuLsBa7ToGkDdA6tHkEeQZWAEQ4ZGkOyNYRvwaiwI1s4FIp1VnZkkq0hW\n/6juGck/QPK9JPPz4t5v4osvTsS9L5lVL0lGAAeZ771748avG+fEOd855w0AQy+99NJLL7300stl\nKv/SrhvQSy+99NJLL7304qULKL300ksvvfTSy6UrXUDppZdeeumll14uXekCSi+99NJLL730culK\nF1B66aWXXnrppZdLV7qA0ksvvfTSSy+9XLrSBZReeumll1566eXSlS6g9NJLL7300ksvl650AaWX\nXnrppZdeerl0pQsovfTSSy+99NLLpStdQOmll1566aWXXi5d6QJKL7300ksvvfRy6UoXUHrppZde\neumll0tXuoDSSy+99NJLL71cutIFlF566aWXXnrp5dKVLqD00ksvvfTSSy+XrnQBpZdeeumll156\nuXSlCyi99NJLL7300sulK11A6aWXXnrppZdeLl3pAkovvfTSSy+99HLpShdQeumll1566aWXS1e6\ngNJLL7300ksvvVy60gWUXnrppZdeeunl0pUuoPTSSy+99NJLL5eudAGll1566aWXXnq5dKULKL30\n0ksvvfTSy6UrXUDppZdeeumll14uXekCSi+99NJLL730culKF1B66aWXXnrppZdLV7qA0ksvvfTS\nSy+9XLrSBZReeumll1566eXSlS6g9NJLL7300ksvl650AaWXXnrppZdeerl0pQsovfTSSy+99NLL\npStdQOmll1566aWXXi5d6QJKL7300ksvvfRy6UoXUHrppZdeeumll0tXuoDSSy+99NJLL71cutIF\nlF566aWXXnrp5dKVLqD00ksvvfTSSy+XrnQBpZdeeumll156uXTl13bdgF5ez/LGG1f/zjD8+p8v\nf3l4BPwf/+k336Jeeunl6yj9Xe/lvKULKL3sqPz6nx+Gf/hXyu//k2++Kb300svXWPq73sv5Sjfx\n9NJLLy9neeONN4c33rg6vPHGm7tuSi+99HLxpQsovbx85VVhTC97P3bZ/vGZ/2QYhj8chuGfvLRj\n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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x1087f3630>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"show_walk(hexagon, 20000)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You can see a little of the six-fold symmetry, but it is not as clear as the triangle and pentagon."
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.5.3"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAigAAAIXCAYAAAC2IaX9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsvc+PXUmWHnbLGhmW7foDnoGBBDghWPIAhG1YKMIQBJPL\npDcGy6vqVVV50WQZnqpeuLsBa7ToGkDdA6tHkEeQZWAEQ4ZGkOyNYRvwaiwI1s4FIp1VnZkkq0hW\n/6juGck/QPK9JPPz4t5v4osvTsS9L5lVL0lGAAeZ771748avG+fEOd855w0AQy+99NJLL7300stl\nKv/SrhvQSy+99NJLL7304qULKL300ksvvfTSy6UrXUDppZdeeumll14uXekCSi+99NJLL730culK\nF1B66aWXXnrppZdLV7qA0ksvvfTSSy+9XLrSBZReeumll1566eXSlS6g9NJLL7300ksvl650AaWX\nXnrppZdeerl0pQsovfTSSy+99NLLpStdQOmll1566aWXXi5d6QJKL7300ksvvfRy6UoXUHrppZde\neumll0tXuoDSSy+99NJLL71cutIFlF566aWXXnrp5dKVLqD00ksvvfTSSy+XrnQBpZdeeumll156\nuXSlCyi99NJLL7300sulK11A6aWXXnrppZdeLl3pAkovvfTSSy+99HLpShdQeumll1566aWXS1e6\ngNJLL7300ksvvVy60gWUXnrppZdeeunl0pUuoPTSSy+99NJLL5eudAGll1566aWXXnq5dKULKL30\n0ksvvfTSy6UrXUDppZdeeumll14uXekCSi+99NJLL730culKF1B66aWXXnrppZdLV7qA0ksvvfTS\nSy+9XLrSBZReeumll1566eXSlS6g9NJLL7300ksvl650AaWXXnrppZdeerl0pQsovfTSSy+99NLL\npStdQOmll1566aWXXi5d6QJKL7300ksvvfRy6UoXUHrppZdeeumll0tXuoDSSy+99NJLL71cutIF\nlF566aWXXnrp5dKVLqD00ksvvfTSSy+XrnQBpZdeeumll156uXTl13bdgF5ez/LGG1f/zjD8+p8v\nf3l4BPwf/+k336Jeeunl6yj9Xe/lvKULKL3sqPz6nx+Gf/hXyu//k2++Kb300svXWPq73sv5Sjfx\n9NJLLy9neeONN4c33rg6vPHGm7tuSi+99HLxpQsovbx85VVhTC97P3bZ/vGZ/2QYhj8chuGfvLRj\n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 truncated