Skip to content

Instantly share code, notes, and snippets.

@seangtkelley
Last active November 24, 2019 16:24
Show Gist options
  • Select an option

  • Save seangtkelley/586cf9cc2057c178ac158353193da1b2 to your computer and use it in GitHub Desktop.

Select an option

Save seangtkelley/586cf9cc2057c178ac158353193da1b2 to your computer and use it in GitHub Desktop.
Distribution of One Million Digits of Pi
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Distribution of One Million Digits of Pi"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import collections\n",
"import string\n",
"import urllib.request\n",
"\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"('./pi_dec_1m.txt', <http.client.HTTPMessage at 0x19c426cd8d0>)"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"url = 'https://www.pi2e.ch/blog/wp-content/uploads/2017/03/pi_dec_1m.txt'\n",
"urllib.request.urlretrieve(url, './pi_dec_1m.txt')"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Counter({'3': 100230,\n",
" '1': 99758,\n",
" '4': 100230,\n",
" '5': 100359,\n",
" '9': 100106,\n",
" '2': 100026,\n",
" '6': 99548,\n",
" '8': 99985,\n",
" '7': 99800,\n",
" '0': 99959})"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"digitCounts = collections.Counter()\n",
"with open('pi_dec_1m.txt', \"r\") as ins:\n",
" array = []\n",
" for line in ins:\n",
" digitCounts.update(line.translate(str.maketrans('', '', string.punctuation)))\n",
"digitCounts"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"sortedDigitCounts = sorted(digitCounts.items())\n",
"digits = [digit[0] for digit in sortedDigitCounts]\n",
"counts = [digit[1] for digit in sortedDigitCounts]"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.bar(digits, counts, align='center', alpha=0.5)\n",
"plt.xticks(digits, digits)\n",
"plt.ylabel('count')\n",
"axes = plt.gca()\n",
"axes.set_ylim([99400, 100400])\n",
"plt.title('Distribution of One Million Digits of Pi')\n",
"\n",
"plt.show()"
]
}
],
"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.6.7"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment