Skip to content

Instantly share code, notes, and snippets.

@veeenu
Created July 24, 2019 12:47
Show Gist options
  • Save veeenu/009e5cb2df85621178eae501731ff3ad to your computer and use it in GitHub Desktop.
Save veeenu/009e5cb2df85621178eae501731ff3ad to your computer and use it in GitHub Desktop.
Lucky trading shadow Pokémon
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import itertools, functools, operator\n",
"import matplotlib.pyplot as plt, numpy as np\n",
"import seaborn as sns\n",
"\n",
"def cap(iv):\n",
" return min(iv + 2, 15)\n",
"\n",
"def ivs_to_pct(atk_iv, def_iv, sta_iv):\n",
" return (cap(atk_iv) + cap(def_iv) + cap(sta_iv)) * 100 / 45.\n",
"\n",
"ivs = functools.reduce(operator.add, list(list(set(itertools.permutations(i))) for i in itertools.combinations_with_replacement(range(12, 16), 3)))\n",
"ivspct = list(map(lambda x: round(100*ivs_to_pct(*x)), ivs))"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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5Ehez9XVVQd8Y/NDP7r8+uuvZ+7cudm1a1d27dqVH/3oR/n85z+fm266Ke+88046OjryyCOPfOCHUZ144onp06dPXnzxxSRJc3Nzhg0bltra2gwdOjQrV65MkjQ1NWXYsGF7jW1ubs6IESPSt2/fdHR0pKamJtXV1Wlvb/8n/wcAAADg6PKh7+gOHz48L7/8cr785S+nV69eqa+vz+WXX55Pf/rTufjii7N79+7U19dnzJgxSZLJkyfnyiuvzGmnnZYFCxZk7ty52b59e0455ZRMmjQpSTJ//vzMmjUr99xzT44//vjcfvvtXb9ee3t7li9fnu985ztJkkmTJmXmzJnp06dPFi5c+HH8NwAAAKBAqsrlcmE/2+ujyyQ982NEHB7WBgdifRwepVL/NF7TXOlpcAR64ltje9we7ImvG/Yg+3Ok78GP/NFlAAAA6EmELgAAAIUidAEAACgUoQsAAEChCF0AAAAKRegCAABQKEIXAACAQhG6AAAAFIrQBQAAoFCELgAAAIUidAEAACgUoQsAAEChCF0AAAAKRegCAABQKEIXAACAQhG6AAAAFIrQBQAAoFCELgAAAIUidAEAACgUoQsAAEChCF0AAAAKRegCAABQKEIXAACAQhG6AAAAFIrQBQAAoFCELgAAAIUidAEAACgUoQsAAEChCF0AAAAKRegCAABQKEIXAACAQhG6AAAAFIrQBQAAoFCELgAAAIUidAEAACgUoQsAAEChCF0AAAAKRegCAABQKEIXAACAQhG6AAAAFIrQBQAAoFAOKnTvuuuujB49Og0NDVmyZEmS5Nlnn01jY2Pq6+tzxx137HPchg0bMnHixIwaNSrTp09PW1tbkuTdd9/NlClTct5552XixIlpbW1NkrzwwgsZOXJkzj///Lz22mtJkra2tkybNu0jXygAAABHhw8N3eeffz5///d/n+XLl+exxx7L97///fz85z/P7Nmzs3jx4qxcuTJr167N008//YGx119/fSZMmJCWlpaceuqpWbx4cZLkzjvvzNChQ7Nq1apceOGFufHGG5MkS5YsyW233Zbp06fn4YcfTpJ897vfzaWXXnoorxkAAIAC+9DQPfPMM7N06dLU1NRky5Yt2bNnT959990MGTIkgwcPTk1NTRobG9PS0rLXuI6OjqxZsyYjR45MkowbN67rnKeeeiqNjY1JkjFj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Ndddd12OOeaYLFiwIIsWLcr06dO7fXHHHtuv22MpllKpf6WnwBHK2uBArA+orJ64B3vinGF/evJ6/tDQfd8vf/nLTJ06NX/xF3+RXr16Zf369V3PlcvlVFVV7XX+vh773ePfPre6ujonn3xyHn300STJK6+8kiQZMGBArrjiinR0dOTaa6/NZz7zmYOdcrZs2Z7OzvJBn08xlUr909q6rdLT4AhkbXAg1sfh0ZO/ieLj19P2YE983bAHOZAjeT1XV1cd8I3Ng/phVC+++GK++tWv5pprrskFF1yQQYMGdf0AqSRpbW1NXV3dXmMGDhyYbdu2Zc+ePR84p66uLps3b06S7N69O21tbRkwYMBe47/97W9nxowZWbp0aerr6zN16tQsWrToYKYLAADAUexDQ/fXv/51LrvssixYsCANDQ1JktNPPz2vvfZafvWrX2XPnj1ZsWJFhg0btte42traDB06NCtXrkySNDU1dZ0zfPjwNDU1JUlWrlyZoUOHpra2tmvsmjVrMnjw4AwaNCgdHR3p1atXqqur097efmiuGgAAgML60I8u//Vf/3Xa29tzyy23dD120UUX5ZZbbskVV1yR9vb2DB8+PKNGjUqSzJkzJ1/84hfzpS99KfPnz8+sWbNyzz335Pjjj8/tt9+eJLnqqqsya9asNDQ0pH///lmwYMFev+b999/fde6FF16Yq666Kp2dnbnpppsO2YUDAABQTFXlcrmwN7G6R5ekZ94vw+FhbXAg1sfhUSr1T+M1zZWeBkegJ741tsftwZ74umEPsj9H+h48JPfoAgAAQE8hdAEAACgUoQsAAEChCF0AAAAKRegCAABQKEIXAACAQhG6AAAAFIrQBQAAoFCELgAAAIUidAEAACgUoQsAAEChCF0AAAAKRegCAABQKEIXAACAQhG6AAAAFIrQBQAAoFCELgAAAIUidAEAACgUoQsAAEChCF0AAAAKRegCAABQKEIXAACAQhG6AAAAFIrQBQAAoFCELgAAAIUidAEAACgUoQsAAEChCF0AAAAKRegCAABQKEIXAACAQhG6AAAAFIrQBQAAoFCELgAAAIUidAEAACgUoQsAAEChCF0AAAAKRegCAABQKEIXAACAQhG6AAAAFIrQBQAAoFAOOnS3b9+eMWPG5PXXX0+SfOMb30h9fX3Gjh2bsWPH5sknn/zAmHXr1mXcuHEZOXJk5syZk927dydJNmzYkIkTJ2bUqFGZPn162trakiQtLS0ZMWJExo8fn61bt3ade+21137kCwUAAODocFCh+9JLL+Xiiy/O+vXrux5bu3ZtHnzwwTQ3N6e5uTnnnnvuB8bNnDkz8+bNy+rVq1Mul7Ns2bIkyfXXX58JEyakpaUlp556ahYvXpwkuffee/PII4+kvr4+K1asSJIsWrQoM2bM+KjXCQAAwFHioEJ32bJlmT9/furq6pIk7733XjZs2JDZs2ensbExCxcuTGdn515j3njjjezcuTNnnHFGkmTcuHFpaWlJR0dH1qxZk5EjR+71eJLU1tZmx44daWtrS21tbdatW5e+fftmyJAhh+yCAQAAKLaagznpxhtv3Ot48+bNOeusszJ//vz0798/U6dOzaOPPprx48d3nbNp06aUSqWu41KplI0bN+att95Kv379UlNTs9fjSXL11VfnsssuywknnJCvf/3rmTVrVr75zW92++KOPbZft8dSLKVS/0pPgSOUtcGBWB9QWT1xD/bEOcP+9OT1fFCh+7sGDx6cu+++u+v4kksuSVNT016h29nZmaqqqq7jcrmcqqqqrn/+tvePzznnnCxfvjxJ8swzz+Skk07K22+/nTlz5qR3796ZN29ejjvuuIOe55Yt29PZWe7OJVIgpVL/tLZuq/Q0OAJZGxyI9XF49ORvovj49bQ92BNfN+xBDuRIXs/V1VUHfGOzWz91+Re/+EVWr17ddVwul7veoX3foEGD0tra2nW8efPm1NXVZeDAgdm2bVv27NmTJGltbe36SPT7Ojs788ADD+RrX/taFi1alClTpqS+vj5Lly7tznQBAAA4inQrdMvlcm666aa888476ejoyCOPPPKBH0Z14oknpk+fPnnxxReTJM3NzRk2bFhqa2szdOjQrFy5MknS1NSUYcOG7TW2ubk5I0aMSN++fdPR0ZGamppUV1envb29O9MFAADgKNKt0D3ppJMyZcqUXHzxxWloaMjJJ5+cMWPGJEkmT56c//2//3eSZMGCBbn55pszatSo7NixI5MmTUqSzJ8/P8uWLcvo0aPzwgsv5M///M+7vnZ7e3uWL1+er3zlK0mSSZMmZebMmbn33ntz8cUXf6SLBQAAoPiqyuVyYW9idY8uSc+8X4bDw9rgQKyPw6NU6p/Ga5orPQ2OQE98a2yP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KBShCwAAQKHUVHoCcCjdf//9eeyxx9K7d++MHj0606dP73ruqaeeyg033JAf//jHFZwhlbSv9bFo0aI89thj+b3f+70kyfjx4zNx4sQKz5TDbV9r49VXX838+fPzzjvvpFQq7fVX4XH0+N218e///b/PrFmzup7funVrPvWpT2XFihUVnCWVsK/XjZ/+9KeZN29eOjo6cvzxx+e2227r+v2Fo8u+1sfTTz+dBQsWJEn+6I/+KDfccEM++clPVnimBVaGgvgf/+N/lMeMGVPetm1beffu3eWpU6eWV69eXS6Xy+XW1tbyqFGjyl/4whcqPEsqZX/rY+rUqeV//Md/rPT0qKB9rY2WlpZyfX19+emnny6Xy+XybbfdVr711lsrPFMOtwP9vlIul8s7duwoNzQ0lNesWVPBWVIJ+1sbF198cfmpp54ql8vl8s0331y+/fbbKzxTKmF/6+Oss84q//KXvyyXy+Xy/fffX/7P//k/V3imxeajyxTGz372s/zJn/xJ+vXrl169euXf/bt/lx/+8IdJkrlz5+byyy+v8AyppP2tj7Vr1+a+++5LY2NjbrjhhrS3t1d6qhxm+1objz/+ePr27Zthw4YlSaZNm+ad/qPQgX5fSZL77rsvn//85zN06NAKzpJK2N/a6OzsTFtbW5Lkvffeyyc+8YkKz5RK2Nf6WLZsWU444YT8wR/8QZLkC1/4wl6vJxx6QpfCOOWUU/LMM8/k7bffTnt7e3784x9n8+bNWbp0af7Vv/pXOf300ys9RSpoX+vjzTffzMknn5yZM2fm8ccfz7vvvpvFixdXeqocZvtaG//tv/23HHfccZk9e3YuuOCCzJ8/P3379q30VDnM9vf7SpJs27Yty5Yt84eoR6n9rY1Zs2Zl7ty5+ZM/+ZM8++yzueiiiyo9VSpgX+ujs7Mzb775Zn7+858nSVatWtX1esLHo6pcLpcrPQk4VJYsWZK//du/zYABA3L22Wfn+eefz+7du/PAAw/kzTffzKRJk9yjexT73fXx0ksv5b777ut6/mc/+1lmz56dpqamCs6SSvjdtXHXXXflE5/4RB588MGcdtppufPOO/Pmm2/mlltuqfRUOcz297rx0EMP5Re/+EVuuOGGSk+RCvndtfEP//AP2bx5c26++eb88R//cZYsWZLnnnsu999/f6WnSgXs67XjkksuyV133ZXOzs6MHz8+t9xyS/7n//yflZ5qYXlHl8LYvn176uvr88QTT+T73/9+evfunT/4gz9Ia2tr/sN/+A+ZMmVKNm3alAkTJlR6qlTAvtbHwIED8+ijj3adUy6XU1PjZ/Qdbfa1Nv7oj/4oQ4YMyWmnnZYkGTNmTF5++eUKz5TDbV9rY/DgwUmSH/7whxk9enSFZ0il7Gtt9OnTJ3369Mkf//EfJ0n+9E//NM8//3yFZ0ol7Gt9/LN/9s8yaNCg/M3f/E0ee+yxnHzyyV2vJ3w8hC6F8frrr2fGjBnZvXt3tm3blkcffTTnnXdeVq9enebm5tx///2pq6vLD37wg0pPlQrY1/q44IILctttt+X//b//l3K5nIceeijnnntupafKYbavtfHNb34zW7du7fqI2Y9//OOccsopFZ4ph9v+fl8pl8v56U9/ms997nOVniIVsq+1MXXq1Lz55pt59dVXkyQ/+tGPuv6wjKPLvtbH6NGjc+mll2bjxo0pl8t54IEH/GHZx8xbFxTGSSedlPr6+px//vnZs2dPvvrVr+bf/Jt/U+lpcYTY1/o488wzc8MNN2T69Onp6OjIv/7X/zpf+9rXKj1VDrP9vXbcfffdmTt3bt57770MGjQot956a6WnymG2v7WxZcuW1NbWpk+fPpWeIhWyv7Vx880358///M9TLpdz7LHH5qabbqr0VKmA/a2PG264IV//+teza9eunH322fmP//E/VnqqheYeXQAAAArFR5cBAAAoFKELAABAoQhdAAAACkXoAgAAUChCFwAAgEIRugAAABSK0AUAAKBQ/j+mdtpOjoyLXAAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 1152x576 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"[1.5625, 14.0625, 42.1875, 42.1875]"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"y = [ ivs_to_pct(*i) for i in ivs ]\n",
"\n",
"sns.set()\n",
"heights, bins = np.histogram(y, bins = len(list(set(y))))\n",
"\n",
"percent = [i/sum(heights)*100 for i in heights]\n",
"fig, ax = plt.subplots(1, 1, figsize=(16, 8))\n",
"ax.bar(bins[:-1], percent, width=1, align=\"edge\")\n",
"vals = ax.get_yticks()\n",
"ax.set_yticklabels(['%1.2f%%' %i for i in vals])\n",
"\n",
"plt.show()\n",
"display(percent)"
]
}
],
"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.7.3"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment