Skip to content

Instantly share code, notes, and snippets.

@jrecursive
Created November 3, 2018 00:15
Show Gist options
  • Save jrecursive/86b91df81022886dd2894f34d6f9e8b6 to your computer and use it in GitHub Desktop.
Save jrecursive/86b91df81022886dd2894f34d6f9e8b6 to your computer and use it in GitHub Desktop.
{
"cells": [
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"max 7 items\n"
]
}
],
"source": [
"\n",
"COUNTS = [\n",
" 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, \n",
" 24, 25, 26, 27, 28, 29, 30, 35, 40, 45, 50, 60, 70, 75, 80, 90, 100, 125, \n",
" 150, 200\n",
"]\n",
" \n",
"def nextval(rem):\n",
" for n in COUNTS[::-1]:\n",
" if (n <= rem and (rem-n) % 4 == 0):\n",
" return n\n",
" return 0\n",
" \n",
"def solve(wings):\n",
" order = {}\n",
" wings_left = wings\n",
" while True:\n",
" nval = nextval(wings_left)\n",
" if nval > 0:\n",
" wings_left -= nval\n",
" if nval not in order:\n",
" order[nval] = 0\n",
" order[nval] += 1\n",
" if wings_left == 0:\n",
" return order\n",
" else:\n",
" return -1\n",
"\n",
"histo = {}\n",
"max_ct = 0\n",
"\n",
"vals = []\n",
"sizes = []\n",
"for n in range(100, 1000):\n",
" ord = solve(n)\n",
" ct = 0\n",
" for key, value in ord.items():\n",
" sizes.append(key)\n",
" ct += value\n",
" #print (str(n) + \": \" + str(ct) + \" orders: \" + str(ord))\n",
" if (ct > max_ct):\n",
" max_ct = ct\n",
" vals.append(ct)\n",
"\n",
"print (\"\\nmax \" + str(max_ct) + \" items\")\n"
]
},
{
"cell_type": "code",
"execution_count": 27,
"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": [
"import matplotlib\n",
"import matplotlib.pyplot as plt\n",
"fig, ax = plt.subplots()\n",
"ax.set_xlabel('Orders')\n",
"ax.set_ylabel('Frequency')\n",
"ax.hist(vals, bins=max_ct)\n",
"None"
]
},
{
"cell_type": "code",
"execution_count": 28,
"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": [
"fig, ax = plt.subplots()\n",
"ax.set_xlabel('Order Sizes')\n",
"ax.set_ylabel('Frequency')\n",
"ax.hist(sizes, bins=len(COUNTS))\n",
"None"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"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.2"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment