From 47d2ced39527069ddb8f5076b657f620969011ca Mon Sep 17 00:00:00 2001 From: adris Date: Thu, 16 Nov 2023 19:15:26 +0000 Subject: [PATCH] Lab Done --- lab_2_continuous.ipynb | 1238 ++++++++++++++++++++++++++++ lab_2_discrete.ipynb | 476 +++++++++++ .gitignore => your-code/.gitignore | 0 README.md => your-code/README.md | 0 4 files changed, 1714 insertions(+) create mode 100644 lab_2_continuous.ipynb create mode 100644 lab_2_discrete.ipynb rename .gitignore => your-code/.gitignore (100%) rename README.md => your-code/README.md (100%) diff --git a/lab_2_continuous.ipynb b/lab_2_continuous.ipynb new file mode 100644 index 0000000..55aa48b --- /dev/null +++ b/lab_2_continuous.ipynb @@ -0,0 +1,1238 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "tNQB_WKqJpaa" + }, + "source": [ + "# Before your start:\n", + "\n", + " Read the README.md file\n", + " Comment as much as you can and use the resources (README.md file)\n", + " Happy learning!" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "wZDj7WRNJpab" + }, + "source": [ + "In this exercise, we will generate random numbers from the continuous disributions we learned in the lesson. There are two ways to generate random numbers:\n", + "\n", + "1. Using the numpy library\n", + "1. using the Scipy library\n", + "\n", + "Use either or both of the lbraries in this exercise." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "SEAIQnCfJpac" + }, + "source": [ + "## Uniform Distribution\n", + "\n", + "To generate uniform random numbers between any two given values using scipy, we can either use the following code or the code that we have\n", + "discussed in class:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "hON1KLPbJpac", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "167a7922-42fc-4423-e884-37bb1e4de939" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "[2.75527279 2.08749932 2.21535736 2.73831247 2.59790352 2.24445987\n", + " 2.9580249 2.20717768 2.76745513 2.91754821]\n" + ] + } + ], + "source": [ + "from scipy.stats import uniform\n", + "x = uniform.rvs(size = 10)\n", + "a = 2\n", + "b = 3\n", + "randoms = a + (b-a)*x\n", + "print(randoms)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "TSN7EEDcJpac" + }, + "source": [ + "**Your task:**\n", + "\n", + "1. Based on the code above, write a function that generates uniformly distributed random numbers. There are several requirements for your function:\n", + " * It should accept 3 parameters:\n", + " * `bottom` - the lower boundary of the generated numbers\n", + " * `ceiling` - the upper boundary of the generated numbers\n", + " * `count` - how many numbers to generate\n", + " * It should return an array of uniformly distributed random numbers\n", + "\n", + "1. Call your function with 2 sets of params below:\n", + " * bottom=10, ceiling=15, count=100\n", + " * bottom=10, ceiling=60, count=1,000\n", + "\n", + "1. Plot the uniform distributions generated above using histograms, where x axis is the value and y axis is the count. Let the histogram's number of bins be 10.\n", + "\n", + "Your output should look like below:\n", + "\n", + "![uniform distribution](ud.png)" + ] + }, + { + "cell_type": "code", + "source": [ + "# 1.https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.uniform.html -> rvs(loc=0, scale=1, size=1)\trandom variates\n", + "\n", + "from scipy.stats import uniform\n", + "\n", + "def rand_numb(bottom, ceiling, count):\n", + " random_numbers = uniform.rvs(loc = bottom, scale = ceiling, size = count)\n", + " return random_numbers\n", + "\n", + "rand_numb(5, 5, 100)" + ], + "metadata": { + "id": "kiLVrxYNZq2n" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "id": "oa4VGLncJpad" + }, + "outputs": [], + "source": [ + "# 2.\n", + "random_100 = rand_numb(10, 15, 100)\n", + "random_1000 = rand_numb(10, 60, 1000)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "ozDrE4qtJpad" + }, + "source": [ + "How are the two distributions different?" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "id": "lm9r_5w5Jpad", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 455 + }, + "outputId": "b14e4f08-317c-4cc7-a8a4-cd84359f3e54" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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ior8244cOaKCggKlpaWpurpaV1xxhQoLC7Vjxw5NmDBBEydO1L59+4L+M6uqqjRu3DgNHz5c7733ngoKClRZWanrr78+FEsCYJNIuwcAgMZ069ZNl19+udauXavLLrtMkvT3v/9dPXr00KWXXqqIiAgNHTrUf/y9996r/Px8rVu3ThkZGUH9mY888oiGDx+u+++/379t1apV6tOnj3bv3q1zzjmnZYsCYAuu7AAIW2lpafrHP/6huro6SdKaNWs0depURUREqLq6WnPmzNGgQYPUtWtXde7cWbt27WrRlZ0PPvhARUVF6ty5s/82cOBASdLevXtDsiYAbY8rOwDC1sSJE2VZljZs2KBRo0bpzTff1NKlSyVJc+bM0caNG/XQQw/p7LPPltPp1LXXXqtjx441eq6IiO/+bmdZln9bfX19wDHV1dWaOHGiHnzwwZPun5CQEKplAWhjxA6AsBUTE6PJkydrzZo1+uSTTzRgwACNGDFCkrRlyxbdcsstuuaaayR9FyqfffZZk+fq2bOnJOngwYMaPny4JAW8WFmSRowYoX/84x/q16+fIiN5eARMwdNYAMJaWlqaNmzYoFWrViktLc2/vX///nrppZf0/vvv64MPPtBNN9100ju3vs/pdOrCCy/UAw88oF27dqm4uFh//OMfA45JT0/XkSNHdOONN+rdd9/V3r179dprr+nWW2/V8ePHW22NAFoXsQMgrI0bN05xcXEqKyvTTTfd5N++ZMkSdevWTWPGjNHEiROVmprqv+rTlFWrVunbb7/VyJEjlZmZqUWLFgXs93g82rJli44fP67x48dryJAhyszMVNeuXf1PgwFofxzW95/ABgAAMAx/VQEAAEYjdgAAgNGIHQAAYDRiBwAAGI3YAQAARiN2AACA0YgdAABgNGIHAAAYjdgBAABGI3YAAIDRiB0AAGA0YgcAABjt/wF2rxNjbEGosAAAAABJRU5ErkJggg==\n" + }, + "metadata": {} + } + ], + "source": [ + "# 3.1\n", + "import matplotlib.pyplot as plt\n", + "\n", + "plt.hist(random_100, bins = 10 )\n", + "plt.xlabel(\"value\")\n", + "plt.ylabel(\"count\")\n", + "plt.ylim(0, 100) # did not know this at all just did it to meet the uniform distribution image, cause i don't know how to put them side by side\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "source": [ + "# 3.1.1 To be precise, and to be like the image I would have to change the range/scale to 5 so that the x axis only reaches 15.\n", + "# Or am I doing something wrong?\n", + "\n", + "random_100_image = rand_numb(10, 5, 100)\n", + "\n", + "plt.hist(random_100_image, bins = 10 )\n", + "plt.xlabel(\"value\")\n", + "plt.ylabel(\"count\")\n", + "plt.ylim(0, 100) # did not know this at all, just did it to meet the uniform distribution image\n", + "plt.show()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 455 + }, + "id": "bslKg9TAlmaM", + "outputId": "ecb5d2d3-1f33-4f28-dc29-a3a015d3faf4" + }, + "execution_count": 8, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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IiIilJKSosLCwnM+prq6WtXV1f6fvV6vJMnn8wV9vtrqU0HfJwAATUlDvL7+dL+WZV3wfk0+do4fP64zZ87I6XQGrDudTn3yySfnfExOTo7mzp171npiYmKDzAgAwM+ZY0nD7v/bb7+Vw+E47/YmHzt1kZWVpczMTP/PtbW1OnnypOLi4mSz2eq0T5/Pp8TERJWWliomJiZYo+I8ON6Ni+PduDjejYvj3biCebwty9K3334rt9t9wfs1+dhp166dmjVrprKysoD1srIyuVyucz7GbrfLbrcHrLVp0yYo88TExPB/lkbE8W5cHO/GxfFuXBzvxhWs432hMzo/avIXKLdo0UJ9+/ZVfn6+f622tlb5+flKTk4O4WQAACAcNPkzO5KUmZmpsWPH6sYbb9Qvf/lLLVmyRJWVlRo3blyoRwMAACFmROz85je/0bFjxzR79mx5PB716tVLeXl5Z1203JDsdrvmzJlz1ttjaBgc78bF8W5cHO/GxfFuXKE43jbrYp/XAgAAaMKa/DU7AAAAF0LsAAAAoxE7AADAaMQOAAAwGrFzmTZv3qzhw4fL7XbLZrPptddeC9huWZZmz56thIQERUVFKSUlRQcOHAjNsAa42PF+9dVXNWTIEP+3X+/Zsyckc5riQse7pqZGs2bNUo8ePRQdHS23263f/e53+vrrr0M3cBN2sX+2//KXv6hbt26Kjo5W27ZtlZKSoqKiotAMa4CLHe+f+sMf/iCbzaYlS5Y02nymudjxvu+++2Sz2QJuQ4cObbB5iJ3LVFlZqZ49e2rZsmXn3L5w4UItXbpUubm5KioqUnR0tFJTU1VVVdXIk5rhYse7srJSAwcO1IIFCxp5MjNd6HifOnVKu3btUnZ2tnbt2qVXX31VxcXFuv3220MwadN3sX+2r7nmGj311FP66KOP9P7776tTp04aMmSIjh071siTmuFix/tH69at07Zt2y765wdwYZdyvIcOHaojR474by+88ELDDWShziRZ69at8/9cW1truVwu629/+5t/rby83LLb7dYLL7wQggnN8r/H+6dKSkosSdbu3bsbdSaTXeh4/2j79u2WJOvQoUONM5ShLuVYe71eS5L17rvvNs5QBjvf8f7yyy+tK664wtq3b5/VsWNHa/HixY0+m4nOdbzHjh1r3XHHHY02A2d2gqikpEQej0cpKSn+NYfDof79+6uwsDCEkwENw+v1ymazBe1vy+HcTp8+reXLl8vhcKhnz56hHsdItbW1uvfeezVjxgxdd911oR7nZ2HTpk2Kj49X165dNXnyZJ04caLBfpcR36AcLjwejySd9c3NTqfTvw0wRVVVlWbNmqW7776bP57YQNavX6+0tDSdOnVKCQkJ2rBhg9q1axfqsYy0YMECRUZG6sEHHwz1KD8LQ4cO1ciRI5WUlKSDBw/qT3/6k4YNG6bCwkI1a9Ys6L+P2AFw2WpqajRmzBhZlqVnnnkm1OMY69Zbb9WePXt0/PhxrVixQmPGjFFRUZHi4+NDPZpRdu7cqb///e/atWuXbDZbqMf5WUhLS/P/7x49euiGG27Q1VdfrU2bNmnw4MFB/328jRVELpdLklRWVhawXlZW5t8GNHU/hs6hQ4e0YcMGzuo0oOjoaHXu3FkDBgzQypUrFRkZqZUrV4Z6LONs2bJFR48eVYcOHRQZGanIyEgdOnRI06ZNU6dOnUI93s/CVVddpXbt2umzzz5rkP0TO0GUlJQkl8ul/Px8/5rP51NRUZGSk5NDOBkQHD+GzoEDB/Tuu+8qLi4u1CP9rNTW1qq6ujrUYxjn3nvv1Ycffqg9e/b4b263WzNmzNDbb78d6vF+Fr788kudOHFCCQkJDbJ/3sa6TBUVFQHlWVJSoj179ig2NlYdOnRQRkaG5s2bpy5duigpKUnZ2dlyu90aMWJE6IZuwi52vE+ePKnDhw/7v+uluLhY0g9n2TibdvkudLwTEhJ01113adeuXVq/fr3OnDnjvxYtNjZWLVq0CNXYTdKFjnVcXJzmz5+v22+/XQkJCTp+/LiWLVumr776SqNHjw7h1E3Xxf5d8r/h3rx5c7lcLnXt2rWxRzXChY53bGys5s6dq1GjRsnlcungwYOaOXOmOnfurNTU1IYZqNE+92WIjRs3WpLOuo0dO9ayrB8+fp6dnW05nU7LbrdbgwcPtoqLi0M7dBN2seP93HPPnXP7nDlzQjp3U3Wh4/3jx/vPddu4cWOoR29yLnSsv/vuO+vOO++03G631aJFCyshIcG6/fbbre3bt4d67CbrYv8u+V989Lx+LnS8T506ZQ0ZMsRq37691bx5c6tjx47WxIkTLY/H02Dz2CzLshomowAAAEKPa3YAAIDRiB0AAGA0YgcAABiN2AEAAEYjdgAAgNGIHQAAYDRiBwAAGI3YAWCsTp06acmSJaEeA0CIETsAAMBoxA4AADAasQMgLC1fvlxut1u1tbUB63fccYfGjx+vgwcP6o477pDT6VSrVq3Ur18/vfvuu+fd3xdffCGbzaY9e/b418rLy2Wz2bRp0yb/2r59+zRs2DC1atVKTqdT9957r44fPx7spwegERE7AMLS6NGjdeLECW3cuNG/dvLkSeXl5Sk9PV0VFRW67bbblJ+fr927d2vo0KEaPny4Dh8+XOffWV5erkGDBql379764IMPlJeXp7KyMo0ZMyYYTwlAiESGegAAOJe2bdtq2LBhWrt2rQYPHixJevnll9WuXTvdeuutioiIUM+ePf33f+SRR7Ru3Tq98cYbmjp1ap1+51NPPaXevXvr0Ucf9a+tWrVKiYmJ+vTTT3XNNdfU70kBCAnO7AAIW+np6XrllVdUXV0tSVqzZo3S0tIUERGhiooKTZ8+Xd27d1ebNm3UqlUr7d+/v15ndvbu3auNGzeqVatW/lu3bt0kSQcPHgzKcwLQ+DizAyBsDR8+XJZl6a233lK/fv20ZcsWLV68WJI0ffp0bdiwQY8//rg6d+6sqKgo3XXXXTp9+vQ59xUR8cN/21mW5V+rqakJuE9FRYWGDx+uBQsWnPX4hISEYD0tAI2M2AEQtlq2bKmRI0dqzZo1+uyzz9S1a1f16dNHkrR161bdd999uvPOOyX9ECpffPHFeffVvn17SdKRI0fUu3dvSQq4WFmS+vTpo1deeUWdOnVSZCT/egRMwdtYAMJaenq63nrrLa1atUrp6en+9S5duujVV1/Vnj17tHfvXt1zzz1nfXLrp6KiojRgwAA99thj2r9/vwoKCvTnP/854D5TpkzRyZMndffdd2vHjh06ePCg3n77bY0bN05nzpxpsOcIoGEROwDC2qBBgxQbG6vi4mLdc889/vVFixapbdu2uummmzR8+HClpqb6z/qcz6pVq/T999+rb9++ysjI0Lx58wK2u91ubd26VWfOnNGQIUPUo0cPZWRkqE2bNv63wQA0PTbrp29gAwAAGIb/VAEAAEYjdgAAgNGIHQAAYDRiBwAAGI3YAQAARiN2AACA0YgdAABgNGIHAAAYjdgBAABGI3YAAIDRiB0AAGA0YgcAABjt/wH3ABFb+IGYgwAAAABJRU5ErkJggg==\n" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "code", + "source": [ + "# 3.2\n", + "plt.hist(random_1000, bins = 10 )\n", + "plt.xlabel(\"value\")\n", + "plt.ylabel(\"count\")\n", + "plt.ylim(0, 115)\n", + "plt.show()" + ], + "metadata": { + "id": "XkFl-SWAlmYR", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 449 + }, + "outputId": "5b96feba-fb06-4f3e-a30e-a801d016b484" + }, + "execution_count": 9, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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PR6PFRUVZT3++OP2toqKCsvpdFqvvvqqHyYMLOXl5ZYkKy8vz7KsX9emRYsW1qpVq+xjdu/ebUmy8vPz/TVmwGjTpo3173//m3Wqx5EjR6z4+HgrJyfH+stf/mJNmjTJsiweV783Y8YMq3v37ifdx1p5mzJlijVgwIB69/Mz/tQmTZpkXXLJJZbH4/HrY4srO02suLhYpaWlSkpKsrdFRESoX79+ys/P9+NkgaGyslKS1LZtW0lSYWGhamtrvdYrISFBHTt2PKfX68SJE3rttddUVVWlxMRE1qkeqampGjJkiNe6SDyuTqaoqEgxMTG6+OKLlZKSov3790tirX7vrbfeUp8+fTRy5EhFRkaqZ8+eWrp0qb2fn/H1O378uF5++WWNHTtWDofDr48tYqeJlZaWSlKdT3N2uVz2vnOVx+NRWlqa+vfvr6uuukrSr+vVsmXLOr+Y9Vxdr88//1xhYWFyOp265557tGbNGl1xxRWs00m89tpr2rZtmzIzM+vsY7289evXTy+++KKys7OVlZWl4uJi/fnPf9aRI0dYq9/55ptvlJWVpfj4eL377ruaMGGC7r//fq1YsUISP+NPZe3ataqoqNBdd90lyb//HRrx6yLQPKWmpmrXrl1erxWAt8svv1w7duxQZWWl3njjDY0ePVp5eXn+HivglJSUaNKkScrJyVFISIi/xwl4gwcPtv/crVs39evXT506ddLrr7+u0NBQP04WeDwej/r06aPHHntMktSzZ0/t2rVLixcv1ujRo/08XWB74YUXNHjwYMXExPh7FK7sNLWoqChJqvNq87KyMnvfuWjixIl6++23tWHDBnXo0MHeHhUVpePHj6uiosLr+HN1vVq2bKlLL71UvXv3VmZmprp3766nn36adfqdwsJClZeXq1evXgoODlZwcLDy8vK0cOFCBQcHy+VysV6n0Lp1a1122WXau3cvj63fiY6O1hVXXOG1rUuXLvbTfvyMP7nvvvtO77//vv7+97/b2/z52CJ2mlhcXJyioqKUm5trb3O73SooKFBiYqIfJ/MPy7I0ceJErVmzRh988IHi4uK89vfu3VstWrTwWq89e/Zo//795+R6/Z7H41FNTQ3r9DuDBg3S559/rh07dti3Pn36KCUlxf4z61W/o0ePat++fYqOjuax9Tv9+/ev8/EYX3/9tTp16iSJn/H1Wb58uSIjIzVkyBB7m18fW0368udzxJEjR6zt27db27dvtyRZ8+fPt7Zv32599913lmVZ1pw5c6zWrVtbb775pvXZZ59Zw4YNs+Li4qyff/7Zz5OffRMmTLAiIiKsDz/80Dp48KB9O3bsmH3MPffcY3Xs2NH64IMPrK1bt1qJiYlWYmKiH6f2j6lTp1p5eXlWcXGx9dlnn1lTp061HA6H9d5771mWxTr9kd++G8uyWK/feuCBB6wPP/zQKi4utjZu3GglJSVZF154oVVeXm5ZFmv1W5s3b7aCg4Ot2bNnW0VFRdbKlSut888/33r55ZftY/gZ7+3EiRNWx44drSlTptTZ56/HFrHjAxs2bLAk1bmNHj3asqxf35o4bdo0y+VyWU6n0xo0aJC1Z88e/w7tJydbJ0nW8uXL7WN+/vln695777XatGljnX/++dbNN99sHTx40H9D+8nYsWOtTp06WS1btrTat29vDRo0yA4dy2Kd/sjvY4f1+p/bbrvNio6Otlq2bGlddNFF1m233Wbt3bvX3s9aeVu3bp111VVXWU6n00pISLCWLFnitZ+f8d7effddS9JJ18Bfjy2HZVlW0147AgAA8B9eswMAAIxG7AAAAKMROwAAwGjEDgAAMBqxAwAAjEbsAAAAoxE7AADAaMQOAAAwGrEDwFidO3fWggUL/D0GAD8jdgAAgNGIHQAAYDRiB0BAWrJkiWJiYuTxeLy2Dxs2TGPHjtW+ffs0bNgwuVwuhYWFqW/fvnr//ffrPd+3334rh8OhHTt22NsqKirkcDj04Ycf2tt27dqlwYMHKywsTC6XS3/729/0448/+vruATiLiB0AAWnkyJH66aeftGHDBnvboUOHlJ2drZSUFB09elQ33XSTcnNztX37dt14440aOnSo9u/f3+C/s6KiQgMHDlTPnj21detWZWdnq6ysTLfeeqsv7hIAPwn29wAAcDJt2rTR4MGD9corr2jQoEGSpDfeeEMXXnihrr/+egUFBal79+728Y8++qjWrFmjt956SxMnTmzQ3/nss8+qZ8+eeuyxx+xty5YtU2xsrL7++mtddtlljbtTAPyCKzsAAlZKSopWr16tmpoaSdLKlSs1atQoBQUF6ejRo3rwwQfVpUsXtW7dWmFhYdq9e3ejruzs3LlTGzZsUFhYmH1LSEiQJO3bt88n9wnA2ceVHQABa+jQobIsS+vXr1ffvn318ccf66mnnpIkPfjgg8rJydETTzyhSy+9VKGhofrrX/+q48ePn/RcQUG//r+dZVn2ttraWq9jjh49qqFDh2ru3Ll1vj86OtpXdwvAWUbsAAhYISEhuuWWW7Ry5Urt3btXl19+uXr16iVJ2rhxo+666y7dfPPNkn4NlW+//bbec7Vv316SdPDgQfXs2VOSvF6sLEm9evXS6tWr1blzZwUH8+MRMAVPYwEIaCkpKVq/fr2WLVumlJQUe3t8fLz++9//aseOHdq5c6fuuOOOOu/c+q3Q0FBdffXVmjNnjnbv3q28vDw98sgjXsekpqbq0KFDuv3227Vlyxbt27dP7777rsaMGaMTJ0402X0E0LSIHQABbeDAgWrbtq327NmjO+64w94+f/58tWnTRtdcc42GDh2q5ORk+6pPfZYtW6ZffvlFvXv3VlpammbNmuW1PyYmRhs3btSJEyd0ww03qGvXrkpLS1Pr1q3tp8EAND8O67dPYAMAABiG/1UBAABGI3YAAIDRiB0AAGA0YgcAABiN2AEAAEYjdgAAgNGIHQAAYDRiBwAAGI3YAQAARiN2AACA0YgdAABgtP8DR/L7yF86NrsAAAAASUVORK5CYII=\n" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "code", + "source": [ + "# 3.2.1 To be precise, and to be like the image I would have to change the range/scale to 50 so that the max (x-axis) will reach 60 (10+50)\n", + "# Or am I doing something wrong?\n", + "\n", + "random_1000_image = rand_numb(10, 50, 1000)\n", + "plt.hist(random_1000_image, bins = 10 )\n", + "plt.xlabel(\"value\")\n", + "plt.ylabel(\"count\")\n", + "plt.ylim(0, 115)\n", + "plt.show()" + ], + "metadata": { + "id": "UwxgOoNumWi5", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 449 + }, + "outputId": "a8ec3ecf-395d-4c7a-dfd3-f711627e178e" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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NWHCBI0dO1ZdunRRRkaGrrvuOq1atcrbowEAAC/z9/YAdXXx4kXl5eUpNTXVXvPz81N8fLxycnKu+DVVVVWqqqqyn5eVlUmSysvLPT5fTdUFjx8TAIDGpD7eX39+XMuyfnG/Rh873333nS5duiSXy+W27nK59OWXX17xa9LT0/Xss89eth4VFVUvMwIA8FsWsrh+j3/u3DmFhIRcdXujj53aSE1NVUpKiv28pqZGZ86cUevWreVwODzyd5SXlysqKkqFhYUKDg72yDFxZZzrhsF5bhic54bDuW4Y9XmeLcvSuXPnFBkZ+Yv7NfrYadOmjZo0aaLi4mK39eLiYoWHh1/xa5xOp5xOp9taaGhovcwXHBzM/4gaCOe6YXCeGwbnueFwrhtGfZ3nX7qi8/8a/Q3KzZo1U58+fZSVlWWv1dTUKCsrS3FxcV6cDAAA+IJGf2VHklJSUjRmzBj17dtXv/vd77R48WJVVFRo7Nix3h4NAAB4mRGx88ADD+jbb7/VzJkzVVRUpJ49eyozM/Oym5YbktPp1KxZsy77uAyex7luGJznhsF5bjic64bhC+fZYf2v79cCAABoxBr9PTsAAAC/hNgBAABGI3YAAIDRiB0AAGA0YqeOPvzwQw0bNkyRkZFyOBzatGmT23bLsjRz5kxFREQoMDBQ8fHxys/P986wjVh6err69eunFi1aKCwsTMOHD9eRI0fc9qmsrFRSUpJat26toKAgjRw58rIfNolftnz5cnXv3t3+4V9xcXF677337O2c4/oxb948ORwOJScn22uca8/4y1/+IofD4faIiYmxt3OePeebb77Rww8/rNatWyswMFDdunXT3r177e3efD8kduqooqJCPXr00LJly664fcGCBVqyZIkyMjKUm5ur5s2ba/DgwaqsrGzgSRu37OxsJSUladeuXdq6dauqq6t19913q6Kiwt5nypQp2rx5s9avX6/s7GydOnVKI0aM8OLUjU+7du00b9485eXlae/evRo4cKASEhL0+eefS+Ic14c9e/bo5ZdfVvfu3d3WOdeec+utt+r06dP24+OPP7a3cZ494+zZs+rfv7+aNm2q9957T1988YVeeOEFtWzZ0t7Hq++HFjxGkrVx40b7eU1NjRUeHm797W9/s9dKS0stp9Npvf76616Y0BwlJSWWJCs7O9uyrJ/Oa9OmTa3169fb+xw+fNiSZOXk5HhrTCO0bNnS+sc//sE5rgfnzp2zOnXqZG3dutX6wx/+YD355JOWZfHv2ZNmzZpl9ejR44rbOM+eM23aNGvAgAFX3e7t90Ou7NSjgoICFRUVKT4+3l4LCQlRbGyscnJyvDhZ41dWViZJatWqlSQpLy9P1dXVbuc6JiZG7du351zX0qVLl/TGG2+ooqJCcXFxnON6kJSUpKFDh7qdU4l/z56Wn5+vyMhI3XDDDUpMTNTJkyclcZ496Z133lHfvn01atQohYWFqVevXlq5cqW93dvvh8ROPSoqKpKky36Ss8vlsrfh2tXU1Cg5OVn9+/dX165dJf10rps1a3bZL3TlXF+7zz77TEFBQXI6nXr00Ue1ceNGdenShXPsYW+88Yb27dun9PT0y7Zxrj0nNjZWr776qjIzM7V8+XIVFBTo97//vc6dO8d59qCvvvpKy5cvV6dOnfT+++9r0qRJeuKJJ7RmzRpJ3n8/NOLXReC3JSkpSYcOHXL73B2ec8stt+jAgQMqKyvTW2+9pTFjxig7O9vbYxmlsLBQTz75pLZu3aqAgABvj2O0IUOG2H/u3r27YmNj1aFDB7355psKDAz04mRmqampUd++fTV37lxJUq9evXTo0CFlZGRozJgxXp6OKzv1Kjw8XJIuu7O/uLjY3oZrM3nyZL377rvavn272rVrZ6+Hh4fr4sWLKi0tddufc33tmjVrpptuukl9+vRRenq6evToob///e+cYw/Ky8tTSUmJevfuLX9/f/n7+ys7O1tLliyRv7+/XC4X57qehIaG6uabb9axY8f4N+1BERER6tKli9ta586d7Y8Mvf1+SOzUo+joaIWHhysrK8teKy8vV25uruLi4rw4WeNjWZYmT56sjRs3atu2bYqOjnbb3qdPHzVt2tTtXB85ckQnT57kXNdRTU2NqqqqOMceNGjQIH322Wc6cOCA/ejbt68SExPtP3Ou68f58+d1/PhxRURE8G/ag/r373/ZjwM5evSoOnToIMkH3g/r/RZow507d87av3+/tX//fkuStXDhQmv//v3W119/bVmWZc2bN88KDQ213n77bevTTz+1EhISrOjoaOuHH37w8uSNy6RJk6yQkBBrx44d1unTp+3HhQsX7H0effRRq3379ta2bdusvXv3WnFxcVZcXJwXp258pk+fbmVnZ1sFBQXWp59+ak2fPt1yOBzWBx98YFkW57g+/fy7sSyLc+0pTz31lLVjxw6roKDA2rlzpxUfH2+1adPGKikpsSyL8+wpu3fvtvz9/a05c+ZY+fn51tq1a63rrrvO+uc//2nv4833Q2KnjrZv325JuuwxZswYy7J++na7tLQ0y+VyWU6n0xo0aJB15MgR7w7dCF3pHEuyVq9ebe/zww8/WI899pjVsmVL67rrrrPuu+8+6/Tp094buhEaN26c1aFDB6tZs2ZW27ZtrUGDBtmhY1mc4/r037HDufaMBx54wIqIiLCaNWtmXX/99dYDDzxgHTt2zN7OefaczZs3W127drWcTqcVExNjrVixwm27N98PHZZlWfV//QgAAMA7uGcHAAAYjdgBAABGI3YAAIDRiB0AAGA0YgcAABiN2AEAAEYjdgAAgNGIHQAAYDRiB4CxOnbsqMWLF3t7DABeRuwAAACjETsAAMBoxA4An7RixQpFRkaqpqbGbT0hIUHjxo3T8ePHlZCQIJfLpaCgIPXr10//+c9/rnq8EydOyOFw6MCBA/ZaaWmpHA6HduzYYa8dOnRIQ4YMUVBQkFwul/70pz/pu+++8/TLA9CAiB0APmnUqFH6/vvvtX37dnvtzJkzyszMVGJios6fP697771XWVlZ2r9/v+655x4NGzZMJ0+erPXfWVpaqoEDB6pXr17au3evMjMzVVxcrPvvv98TLwmAl/h7ewAAuJKWLVtqyJAhWrdunQYNGiRJeuutt9SmTRvddddd8vPzU48ePez9//rXv2rjxo165513NHny5Fr9nS+++KJ69eqluXPn2murVq1SVFSUjh49qptvvrluLwqAV3BlB4DPSkxM1IYNG1RVVSVJWrt2rUaPHi0/Pz+dP39eTz/9tDp37qzQ0FAFBQXp8OHDdbqyc/DgQW3fvl1BQUH2IyYmRpJ0/Phxj7wmAA2PKzsAfNawYcNkWZa2bNmifv366aOPPtKiRYskSU8//bS2bt2q559/XjfddJMCAwP1xz/+URcvXrzisfz8fvr/dpZl2WvV1dVu+5w/f17Dhg3T/PnzL/v6iIgIT70sAA2M2AHgswICAjRixAitXbtWx44d0y233KLevXtLknbu3KlHHnlE9913n6SfQuXEiRNXPVbbtm0lSadPn1avXr0kye1mZUnq3bu3NmzYoI4dO8rfn/88AqbgYywAPi0xMVFbtmzRqlWrlJiYaK936tRJ//73v3XgwAEdPHhQDz300GXfufVzgYGBuu222zRv3jwdPnxY2dnZmjFjhts+SUlJOnPmjB588EHt2bNHx48f1/vvv6+xY8fq0qVL9fYaAdQvYgeATxs4cKBatWqlI0eO6KGHHrLXFy5cqJYtW+r222/XsGHDNHjwYPuqz9WsWrVKP/74o/r06aPk5GTNnj3bbXtkZKR27typS5cu6e6771a3bt2UnJys0NBQ+2MwAI2Pw/r5B9gAAACG4f+qAAAAoxE7AADAaMQOAAAwGrEDAACMRuwAAACjETsAAMBoxA4AADAasQMAAIxG7AAAAKMROwAAwGjEDgAAMNr/AUrdp7asVuyYAAAAAElFTkSuQmCC\n" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "code", + "source": [ + "\"\"\" Sure that the two distributions have a diferent range, so values will fall far from the mean when the range is higher. Of course, count is higher in the second\n", + "distribution, so we will always have much more data points that in the first distribution.\n", + "But they both follow the \"pattern\" of a almost even distribution of all observations, just like uniform.rvs acts \"\"\"" + ], + "metadata": { + "id": "SEfwZSWzlmVQ" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "piQyYpZGJpad" + }, + "source": [ + "## Normal Distribution\n", + "\n", + "1. In the same way in the Uniform Distribution challenge, write a function that generates normally distributed random numbers.\n", + "1. Generate 1,000 normally distributed numbers with the average of 10 and standard deviation of 1\n", + "1. Generate 1,000 normally distributed numbers with the average of 10 and standard deviation of 50\n", + "2. Plot the distributions of the data generated.\n", + "\n", + "Expected output:\n", + "\n", + "![normal distribution](nd.png)" + ] + }, + { + "cell_type": "code", + "source": [ + "# 1.\n", + "import numpy as np\n", + "# np.random.normal, as in class\n", + "\n", + "def normal_numb(mean, std, count):\n", + " return np.random.normal(loc = mean, scale = std, size=count)\n", + "\n", + "normal_numb(10, 1, 200)" + ], + "metadata": { + "id": "4tmEkaZiq1YC" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "# 2.\n", + "normal_1000 = normal_numb(10, 1, 1000)\n", + "\n", + "# 3.\n", + "normal_1000_50std = normal_numb(10, 50, 1000)" + ], + "metadata": { + "id": "JGuzU3Qjro4O" + }, + "execution_count": 11, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "# 4.\n", + "plt.hist(normal_1000, bins = 50)\n", + "plt.xlabel(\"value\")\n", + "plt.ylabel(\"count\")\n", + "plt.ylim(0, 75)\n", + "\n", + "plt.show()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 449 + }, + "id": "yU8pVHMArZrW", + "outputId": "c9875392-5a8a-4298-e0d6-5089cbe33064" + }, + "execution_count": 12, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjIAAAGwCAYAAACzXI8XAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAm90lEQVR4nO3df3RU9YH//9cEyCRLyMREmCQl4YegQYsUKAujrkdjlphyIpQIhWZbBKpn3UgNqQo5LVAUDLitsFZ+FA9EtzX9QQVa4BQKKUZhww+DuLpqBDaarJDBX8lAaCYxud8/+nU+TSEQhiT3vuPzcc49x3nfmzuvuQfIy/e8547LsixLAAAABoqwOwAAAEC4KDIAAMBYFBkAAGAsigwAADAWRQYAABiLIgMAAIxFkQEAAMbqbXeArtba2qpTp06pX79+crlcdscBAAAdYFmWzp49q+TkZEVEtD/v0uOLzKlTp5SSkmJ3DAAAEIaamhoNHDiw3f09vsj069dP0l8vRGxsrM1pAABARwQCAaWkpIR+j7enxxeZL95Oio2NpcgAAGCYyy0LYbEvAAAwFkUGAAAYiyIDAACMRZEBAADGosgAAABjUWQAAICxKDIAAMBYFBkAAGAsigwAADAWRQYAABiLIgMAAIxFkQEAAMaiyAAAAGNRZAAAgLEoMgAAwFgUGQAAYCyKDAAAMBZFBgAAGMvWIjN48GC5XK4Ltry8PElSY2Oj8vLylJCQoJiYGOXk5Mjv99sZGQAAOIitRebIkSM6ffp0aNuzZ48kadq0aZKk+fPna/v27dq8ebPKysp06tQpTZ061c7IAADAQVyWZVl2h/hCfn6+duzYoePHjysQCKh///4qKSnRvffeK0l69913NWLECJWXl2vChAkdOmcgEJDH41F9fb1iY2O7Mj4AAOgkHf397Zg1Mk1NTfrlL3+pOXPmyOVyqaKiQs3NzcrIyAgdk5aWptTUVJWXl7d7nmAwqEAg0GYDAAA9k2OKzLZt21RXV6f77rtPklRbW6vIyEjFxcW1Oc7r9aq2trbd8xQVFcnj8YS2lJSULkwNAADs5Jgis3HjRmVlZSk5OfmqzlNYWKj6+vrQVlNT00kJAQCA0/S2O4AkffDBB9q7d6+2bNkSGktMTFRTU5Pq6urazMr4/X4lJia2ey632y23292VcQEAgEM4YkamuLhYAwYM0KRJk0JjY8eOVZ8+fVRaWhoaq6ysVHV1tXw+nx0xAQCAw9g+I9Pa2qri4mLNmjVLvXv/vzgej0dz585VQUGB4uPjFRsbq3nz5snn83X4E0sAAKBns73I7N27V9XV1ZozZ84F+1atWqWIiAjl5OQoGAwqMzNTa9eutSElAABwIkfdR6YrcB8ZAADMY9x9ZAAAAK4URQYAABiLIgMAAIxFkQEAAMaiyAAAAGNRZAAAgLEoMgAAwFgUGQAAYCyKDAAAMBZFBgAAGIsiAwAAjEWRAQAAxqLIAAAAY1FkAACAsSgyAADAWBQZAABgLIoMAAAwFkUGAAAYiyIDAACMRZEBAADGosgAAABjUWQAAICxKDIAAMBYFBkAAGAsigwAADAWRQYAABiLIgMAAIxFkQEAAMaiyAAAAGNRZAAAgLEoMgAAwFgUGQAAYCyKDAAAMBZFBgAAGIsiAwAAjEWRAQAAxqLIAAAAY1FkAACAsWwvMh9++KH+5V/+RQkJCYqOjtbIkSP12muvhfZblqXFixcrKSlJ0dHRysjI0PHjx21MDAAAnMLWIvPZZ5/p1ltvVZ8+ffTHP/5Rb7/9tn7605/qmmuuCR3z1FNP6ZlnntH69et16NAh9e3bV5mZmWpsbLQxOQAAcAKXZVmWXU++cOFCHThwQK+++upF91uWpeTkZP3gBz/QI488Ikmqr6+X1+vV888/rxkzZlz2OQKBgDwej+rr6xUbG9up+QEAQNfo6O9vW2dk/vCHP+jrX/+6pk2bpgEDBmj06NF67rnnQvurqqpUW1urjIyM0JjH49H48eNVXl5+0XMGg0EFAoE2GwAA6JlsLTL/+7//q3Xr1mn48OHavXu3HnzwQX3/+9/XCy+8IEmqra2VJHm93jY/5/V6Q/v+XlFRkTweT2hLSUnp2hcBAABsY2uRaW1t1ZgxY/Tkk09q9OjReuCBB3T//fdr/fr1YZ+zsLBQ9fX1oa2mpqYTEwMAACextcgkJSXpxhtvbDM2YsQIVVdXS5ISExMlSX6/v80xfr8/tO/vud1uxcbGttkAAEDPZGuRufXWW1VZWdlm7L333tOgQYMkSUOGDFFiYqJKS0tD+wOBgA4dOiSfz9etWQEAgPP0tvPJ58+fr1tuuUVPPvmkpk+frsOHD2vDhg3asGGDJMnlcik/P1/Lli3T8OHDNWTIEC1atEjJycmaMmWKndEBAIAD2Fpkxo0bp61bt6qwsFCPP/64hgwZotWrVys3Nzd0zGOPPaaGhgY98MADqqur02233aZdu3YpKirKxuQAAMAJbL2PTHfgPjIAAJjHiPvIAAAAXA2KDAAAMBZFBgAAGIsiAwAAjEWRAQAAxqLIAAAAY1FkAACAsSgyAADAWBQZAABgLIoMAAAwFkUGAAAYiyIDAACMRZEBAADG6m13AADoaoMX7rzsMe+vmNQNSQB0NmZkAACAsSgyAADAWBQZAABgLIoMAAAwFot9ARitIwt5AfRczMgAAABjUWQAAICxKDIAAMBYFBkAAGAsigwAADAWRQYAABiLIgMAAIxFkQEAAMaiyAAAAGNRZAAAgLEoMgAAwFgUGQAAYCyKDAAAMBZFBgAAGIsiAwAAjEWRAQAAxqLIAAAAY1FkAACAsXrbHQAAnGDwwp2XPeb9FZO6IQmAK8GMDAAAMJatRebHP/6xXC5Xmy0tLS20v7GxUXl5eUpISFBMTIxycnLk9/ttTAwAAJzE9hmZm266SadPnw5t+/fvD+2bP3++tm/frs2bN6usrEynTp3S1KlTbUwLAACcxPY1Mr1791ZiYuIF4/X19dq4caNKSkqUnp4uSSouLtaIESN08OBBTZgw4aLnCwaDCgaDoceBQKBrggMAANvZPiNz/PhxJScna+jQocrNzVV1dbUkqaKiQs3NzcrIyAgdm5aWptTUVJWXl7d7vqKiInk8ntCWkpLS5a8BAADYw9YiM378eD3//PPatWuX1q1bp6qqKv3TP/2Tzp49q9raWkVGRiouLq7Nz3i9XtXW1rZ7zsLCQtXX14e2mpqaLn4VAADALra+tZSVlRX675tvvlnjx4/XoEGD9Nvf/lbR0dFhndPtdsvtdndWRAAA4GC2v7X0t+Li4nT99dfrxIkTSkxMVFNTk+rq6toc4/f7L7qmBgAAfPk4qsicO3dOJ0+eVFJSksaOHas+ffqotLQ0tL+yslLV1dXy+Xw2pgQAAE5h61tLjzzyiLKzszVo0CCdOnVKS5YsUa9evTRz5kx5PB7NnTtXBQUFio+PV2xsrObNmyefz9fuJ5YA9CwdudsugC83W4vM//3f/2nmzJn65JNP1L9/f9122206ePCg+vfvL0latWqVIiIilJOTo2AwqMzMTK1du9bOyAAAwEFclmVZdofoSoFAQB6PR/X19YqNjbU7DoAr4LQZGb5rCeg+Hf397ag1MgAAAFeCIgMAAIxl+1cUAOh5OvKWEG/TAOgMzMgAAABjUWQAAICxKDIAAMBYFBkAAGAsigwAADAWRQYAABiLIgMAAIxFkQEAAMaiyAAAAGNxZ18AV8RpX+QI4MuNGRkAAGAsigwAADAWRQYAABiLIgMAAIxFkQEAAMaiyAAAAGNRZAAAgLEoMgAAwFgUGQAAYCzu7AvAFtwhGEBnYEYGAAAYiyIDAACMRZEBAADGosgAAABjsdgXADqoIwuU318xqRuSAPgCMzIAAMBYFBkAAGAsigwAADAWRQYAABiLIgMAAIxFkQEAAMaiyAAAAGNRZAAAgLEoMgAAwFhh3dk3PT1dW7ZsUVxcXJvxQCCgKVOm6M9//nNnZAOgjt1NtiO44yyAniisGZmXX35ZTU1NF4w3Njbq1VdfDSvIihUr5HK5lJ+f3+Z8eXl5SkhIUExMjHJycuT3+8M6PwAA6HmuaEbmv//7v0P//fbbb6u2tjb0uKWlRbt27dJXvvKVKw5x5MgR/fznP9fNN9/cZnz+/PnauXOnNm/eLI/Ho4ceekhTp07VgQMHrvg5AABAz3NFReZrX/uaXC6XXC6X0tPTL9gfHR2tn/3sZ1cU4Ny5c8rNzdVzzz2nZcuWhcbr6+u1ceNGlZSUhJ6ruLhYI0aM0MGDBzVhwoQreh4AANDzXFGRqaqqkmVZGjp0qA4fPqz+/fuH9kVGRmrAgAHq1avXFQXIy8vTpEmTlJGR0abIVFRUqLm5WRkZGaGxtLQ0paamqry8vN0iEwwGFQwGQ48DgcAV5QEAAOa4oiIzaNAgSVJra2unPPmvf/1rHT16VEeOHLlgX21trSIjIy9YUOz1etu8pfX3ioqKtHTp0k7JBwBXqiOLs1l4DXSesD61JEnHjx/Xvn37dObMmQuKzeLFiy/78zU1NXr44Ye1Z88eRUVFhRvjAoWFhSooKAg9DgQCSklJ6bTzAwAA5wiryDz33HN68MEHde211yoxMVEulyu0z+VydajIVFRU6MyZMxozZkxorKWlRa+88oqeffZZ7d69W01NTaqrq2szK+P3+5WYmNjued1ut9xudzgvCwAAGCasIrNs2TItX75cCxYsCPuJ77rrLr355pttxmbPnq20tDQtWLBAKSkp6tOnj0pLS5WTkyNJqqysVHV1tXw+X9jPCwAAeo6wisxnn32madOmXdUT9+vXT1/96lfbjPXt21cJCQmh8blz56qgoEDx8fGKjY3VvHnz5PP5+MQSAACQFGaRmTZtmv70pz/pX//1Xzs7TxurVq1SRESEcnJyFAwGlZmZqbVr13bpcwI9FYtQAfREYRWZYcOGadGiRTp48KBGjhypPn36tNn//e9/P6wwL7/8cpvHUVFRWrNmjdasWRPW+QAAQM8WVpHZsGGDYmJiVFZWprKysjb7XC5X2EUGAADgSoRVZKqqqjo7BwAAwBUL+z4yAIDwsF4J6DxhFZk5c+Zccv+mTZvCCgMAAHAlwv749d9qbm7WW2+9pbq6uot+mSQAAEBXCKvIbN269YKx1tZWPfjgg7ruuuuuOhQAAEBHRHTaiSIiVFBQoFWrVnXWKQEAAC6p04qMJJ08eVKff/55Z54SAACgXWG9tfS33y4tSZZl6fTp09q5c6dmzZrVKcEAAAAuJ6wi8/rrr7d5HBERof79++unP/3pZT/RBAAA0FnCKjL79u3r7BwAAABX7KpuiPfRRx+psrJSknTDDTeof//+nRIKAACgI8Ja7NvQ0KA5c+YoKSlJt99+u26//XYlJydr7ty5On/+fGdnBAAAuKiwikxBQYHKysq0fft21dXVqa6uTr///e9VVlamH/zgB52dEQAA4KLCemvppZde0u9+9zvdcccdobFvfOMbio6O1vTp07Vu3brOygcAANCusGZkzp8/L6/Xe8H4gAEDeGsJAAB0m7CKjM/n05IlS9TY2Bga+8tf/qKlS5fK5/N1WjgAAIBLCeutpdWrV+vuu+/WwIEDNWrUKEnSG2+8IbfbrT/96U+dGhAAAKA9YRWZkSNH6vjx43rxxRf17rvvSpJmzpyp3NxcRUdHd2pAAACA9oRVZIqKiuT1enX//fe3Gd+0aZM++ugjLViwoFPCAQAAXEpYa2R+/vOfKy0t7YLxm266SevXr7/qUAAAAB0RVpGpra1VUlLSBeP9+/fX6dOnrzoUAABAR4RVZFJSUnTgwIELxg8cOKDk5OSrDgUAANARYa2Ruf/++5Wfn6/m5malp6dLkkpLS/XYY49xZ18AANBtwioyjz76qD755BP927/9m5qamiRJUVFRWrBggQoLCzs1IAAAQHvCKjIul0srV67UokWL9M477yg6OlrDhw+X2+3u7HwAAADtCqvIfCEmJkbjxo3rrCwAAABXJKzFvgAAAE5AkQEAAMaiyAAAAGNRZAAAgLEoMgAAwFgUGQAAYCyKDAAAMBZFBgAAGIsiAwAAjEWRAQAAxrqqrygA0L7BC3faHQEAejxbZ2TWrVunm2++WbGxsYqNjZXP59Mf//jH0P7Gxkbl5eUpISFBMTExysnJkd/vtzExAABwEluLzMCBA7VixQpVVFTotddeU3p6uiZPnqz/+Z//kSTNnz9f27dv1+bNm1VWVqZTp05p6tSpdkYGAAAOYutbS9nZ2W0eL1++XOvWrdPBgwc1cOBAbdy4USUlJUpPT5ckFRcXa8SIETp48KAmTJhgR2QAAOAgjlns29LSol//+tdqaGiQz+dTRUWFmpublZGRETomLS1NqampKi8vb/c8wWBQgUCgzQYAAHom2xf7vvnmm/L5fGpsbFRMTIy2bt2qG2+8UceOHVNkZKTi4uLaHO/1elVbW9vu+YqKirR06dIuTg30TCxQBmAa22dkbrjhBh07dkyHDh3Sgw8+qFmzZuntt98O+3yFhYWqr68PbTU1NZ2YFgAAOIntMzKRkZEaNmyYJGns2LE6cuSI/uM//kPf+ta31NTUpLq6ujazMn6/X4mJie2ez+12y+12d3VsAADgALbPyPy91tZWBYNBjR07Vn369FFpaWloX2Vlpaqrq+Xz+WxMCAAAnMLWGZnCwkJlZWUpNTVVZ8+eVUlJiV5++WXt3r1bHo9Hc+fOVUFBgeLj4xUbG6t58+bJ5/PxiSUAACDJ5iJz5swZffe739Xp06fl8Xh08803a/fu3frnf/5nSdKqVasUERGhnJwcBYNBZWZmau3atXZGBgAADuKyLMuyO0RXCgQC8ng8qq+vV2xsrN1x8CXCJ4BwNd5fMcnuCICtOvr723FrZAAAADqKIgMAAIxFkQEAAMaiyAAAAGNRZAAAgLEoMgAAwFgUGQAAYCyKDAAAMJbtXxoJAAhPR266yI310NMxIwMAAIxFkQEAAMaiyAAAAGNRZAAAgLFY7AsADtRTvz2dBcrobMzIAAAAY1FkAACAsSgyAADAWBQZAABgLIoMAAAwFkUGAAAYiyIDAACMRZEBAADGosgAAABjUWQAAICxKDIAAMBYFBkAAGAsigwAADAW336NLxW+eRcAehZmZAAAgLEoMgAAwFgUGQAAYCyKDAAAMBZFBgAAGIsiAwAAjEWRAQAAxqLIAAAAY1FkAACAsSgyAADAWBQZAABgLFuLTFFRkcaNG6d+/fppwIABmjJliiorK9sc09jYqLy8PCUkJCgmJkY5OTny+/02JQYAAE5ia5EpKytTXl6eDh48qD179qi5uVkTJ05UQ0ND6Jj58+dr+/bt2rx5s8rKynTq1ClNnTrVxtQAAMApbP326127drV5/Pzzz2vAgAGqqKjQ7bffrvr6em3cuFElJSVKT0+XJBUXF2vEiBE6ePCgJkyYcME5g8GggsFg6HEgEOjaFwEAAGxja5H5e/X19ZKk+Ph4SVJFRYWam5uVkZEROiYtLU2pqakqLy+/aJEpKirS0qVLuycwAPQAgxfuvOwx76+Y1A1JgCvnmMW+ra2tys/P16233qqvfvWrkqTa2lpFRkYqLi6uzbFer1e1tbUXPU9hYaHq6+tDW01NTVdHBwAANnHMjExeXp7eeust7d+//6rO43a75Xa7OykVAABwMkfMyDz00EPasWOH9u3bp4EDB4bGExMT1dTUpLq6ujbH+/1+JSYmdnNKAADgNLYWGcuy9NBDD2nr1q3685//rCFDhrTZP3bsWPXp00elpaWhscrKSlVXV8vn83V3XAAA4DC2vrWUl5enkpIS/f73v1e/fv1C6148Ho+io6Pl8Xg0d+5cFRQUKD4+XrGxsZo3b558Pt9FF/oCALoGC4LhVLYWmXXr1kmS7rjjjjbjxcXFuu+++yRJq1atUkREhHJychQMBpWZmam1a9d2c1IAAOBEthYZy7Iue0xUVJTWrFmjNWvWdEMiAABgEkcs9gUAAAgHRQYAABiLIgMAAIxFkQEAAMaiyAAAAGNRZAAAgLEoMgAAwFiO+dJIwCm4gykAmIMZGQAAYCyKDAAAMBZFBgAAGIsiAwAAjMViXyAMHVkQDDgBf1bR0zEjAwAAjEWRAQAAxqLIAAAAY1FkAACAsVjsix6DRY2Avfg7CDswIwMAAIxFkQEAAMaiyAAAAGNRZAAAgLEoMgAAwFgUGQAAYCyKDAAAMBZFBgAAGIsiAwAAjMWdfWEE7hgKALgYZmQAAICxKDIAAMBYFBkAAGAsigwAADAWi30BAMbpyAcA3l8xqRuSwG7MyAAAAGNRZAAAgLEoMgAAwFgUGQAAYCwW+8J23LUXABAuW2dkXnnlFWVnZys5OVkul0vbtm1rs9+yLC1evFhJSUmKjo5WRkaGjh8/bk9YAADgOLYWmYaGBo0aNUpr1qy56P6nnnpKzzzzjNavX69Dhw6pb9++yszMVGNjYzcnBQAATmTrW0tZWVnKysq66D7LsrR69Wr96Ec/0uTJkyVJ//mf/ymv16tt27ZpxowZF/25YDCoYDAYehwIBDo/OAAAcATHLvatqqpSbW2tMjIyQmMej0fjx49XeXl5uz9XVFQkj8cT2lJSUrojLgAAsIFji0xtba0kyev1thn3er2hfRdTWFio+vr60FZTU9OlOQEAgH163KeW3G633G633TEAAEA3cOyMTGJioiTJ7/e3Gff7/aF9AADgy82xRWbIkCFKTExUaWlpaCwQCOjQoUPy+Xw2JgMAAE5h61tL586d04kTJ0KPq6qqdOzYMcXHxys1NVX5+flatmyZhg8friFDhmjRokVKTk7WlClT7AsNAAAcw9Yi89prr+nOO+8MPS4oKJAkzZo1S88//7wee+wxNTQ06IEHHlBdXZ1uu+027dq1S1FRUXZFBgAADmJrkbnjjjtkWVa7+10ulx5//HE9/vjj3ZgKAACYwrFrZAAAAC6HIgMAAIxFkQEAAMaiyAAAAGNRZAAAgLEoMgAAwFgUGQAAYKwe96WRAACzDV6401HneX/FpE45D7oGMzIAAMBYFBkAAGAsigwAADAWRQYAABiLxb7oUp212A4AgIthRgYAABiLIgMAAIxFkQEAAMaiyAAAAGOx2BcXxSJdAIAJmJEBAADGosgAAABjUWQAAICxKDIAAMBYLPZ1gI4urOWr5AEAaIsZGQAAYCyKDAAAMBZFBgAAGIsiAwAAjMVi36vQkUW6nblAt7ufDwDQef/28m9412BGBgAAGIsiAwAAjEWRAQAAxqLIAAAAY7HY90uoo3cSBgB8uZmwQJkZGQAAYCyKDAAAMBZFBgAAGIsiAwAAjMVi3y7W3QtrWcgLAObiLsJXzogZmTVr1mjw4MGKiorS+PHjdfjwYbsjAQAAB3B8kfnNb36jgoICLVmyREePHtWoUaOUmZmpM2fO2B0NAADYzPFF5umnn9b999+v2bNn68Ybb9T69ev1D//wD9q0aZPd0QAAgM0cvUamqalJFRUVKiwsDI1FREQoIyND5eXlF/2ZYDCoYDAYelxfXy9JCgQCnZ6vNXi+088JADBPR37HdNbvjM56ru48Tzi+OK9lWZc8ztFF5uOPP1ZLS4u8Xm+bca/Xq3ffffeiP1NUVKSlS5deMJ6SktIlGQEA8Kw277mcdp72nD17Vh6Pp939ji4y4SgsLFRBQUHocWtrqz799FMlJCTI5XJ12vMEAgGlpKSopqZGsbGxnXbenohr1TFcp47hOnUM16njuFYd093XybIsnT17VsnJyZc8ztFF5tprr1WvXr3k9/vbjPv9fiUmJl70Z9xut9xud5uxuLi4roqo2NhY/uB3ENeqY7hOHcN16hiuU8dxrTqmO6/TpWZivuDoxb6RkZEaO3asSktLQ2Otra0qLS2Vz+ezMRkAAHACR8/ISFJBQYFmzZqlr3/96/rHf/xHrV69Wg0NDZo9e7bd0QAAgM0cX2S+9a1v6aOPPtLixYtVW1urr33ta9q1a9cFC4C7m9vt1pIlSy54GwsX4lp1DNepY7hOHcN16jiuVcc49Tq5rMt9rgkAAMChHL1GBgAA4FIoMgAAwFgUGQAAYCyKDAAAMBZF5goNHjxYLpfrgi0vL8/uaI7S0tKiRYsWaciQIYqOjtZ1112nJ5544rLfmfFldPbsWeXn52vQoEGKjo7WLbfcoiNHjtgdy3avvPKKsrOzlZycLJfLpW3btrXZb1mWFi9erKSkJEVHRysjI0PHjx+3J6yNLnedtmzZookTJ4bubn7s2DFbctrtUtepublZCxYs0MiRI9W3b18lJyfru9/9rk6dOmVfYBtd7s/Uj3/8Y6Wlpalv37665pprlJGRoUOHDtkTVhSZK3bkyBGdPn06tO3Zs0eSNG3aNJuTOcvKlSu1bt06Pfvss3rnnXe0cuVKPfXUU/rZz35mdzTH+d73vqc9e/boF7/4hd58801NnDhRGRkZ+vDDD+2OZquGhgaNGjVKa9asuej+p556Ss8884zWr1+vQ4cOqW/fvsrMzFRjY2M3J7XX5a5TQ0ODbrvtNq1cubKbkznLpa7T+fPndfToUS1atEhHjx7Vli1bVFlZqXvuuceGpPa73J+p66+/Xs8++6zefPNN7d+/X4MHD9bEiRP10UcfdXPS/5+Fq/Lwww9b1113ndXa2mp3FEeZNGmSNWfOnDZjU6dOtXJzc21K5Eznz5+3evXqZe3YsaPN+JgxY6wf/vCHNqVyHknW1q1bQ49bW1utxMRE69///d9DY3V1dZbb7bZ+9atf2ZDQGf7+Ov2tqqoqS5L1+uuvd2smJ7rUdfrC4cOHLUnWBx980D2hHKoj16q+vt6SZO3du7d7Qv0dZmSuQlNTk375y19qzpw5nfqFlD3BLbfcotLSUr333nuSpDfeeEP79+9XVlaWzcmc5fPPP1dLS4uioqLajEdHR2v//v02pXK+qqoq1dbWKiMjIzTm8Xg0fvx4lZeX25gMPUV9fb1cLleXfldfT9DU1KQNGzbI4/Fo1KhRtmRw/J19nWzbtm2qq6vTfffdZ3cUx1m4cKECgYDS0tLUq1cvtbS0aPny5crNzbU7mqP069dPPp9PTzzxhEaMGCGv16tf/epXKi8v17Bhw+yO51i1tbWSdMEdvr1eb2gfEK7GxkYtWLBAM2fO5Esk27Fjxw7NmDFD58+fV1JSkvbs2aNrr73WlizMyFyFjRs3Kisr67JfMf5l9Nvf/lYvvviiSkpKdPToUb3wwgv6yU9+ohdeeMHuaI7zi1/8QpZl6Stf+YrcbreeeeYZzZw5UxER/PUEultzc7OmT58uy7K0bt06u+M41p133qljx47pv/7rv3T33Xdr+vTpOnPmjC1Z+JcyTB988IH27t2r733ve3ZHcaRHH31UCxcu1IwZMzRy5Eh95zvf0fz581VUVGR3NMe57rrrVFZWpnPnzqmmpkaHDx9Wc3Ozhg4danc0x0pMTJQk+f3+NuN+vz+0D7hSX5SYDz74QHv27GE25hL69u2rYcOGacKECdq4caN69+6tjRs32pKFIhOm4uJiDRgwQJMmTbI7iiOdP3/+ghmFXr16qbW11aZEzte3b18lJSXps88+0+7duzV58mS7IznWkCFDlJiYqNLS0tBYIBDQoUOH5PP5bEwGU31RYo4fP669e/cqISHB7khGaW1tVTAYtOW5WSMThtbWVhUXF2vWrFnq3ZtLeDHZ2dlavny5UlNTddNNN+n111/X008/rTlz5tgdzXF2794ty7J0ww036MSJE3r00UeVlpam2bNn2x3NVufOndOJEydCj6uqqnTs2DHFx8crNTVV+fn5WrZsmYYPH64hQ4Zo0aJFSk5O1pQpU+wLbYPLXadPP/1U1dXVoXuiVFZWSvrrrNaXafbqUtcpKSlJ9957r44ePaodO3aopaUltNYqPj5ekZGRdsW2xaWuVUJCgpYvX6577rlHSUlJ+vjjj7VmzRp9+OGH9t2GxJbPShlu9+7dliSrsrLS7iiOFQgErIcffthKTU21oqKirKFDh1o//OEPrWAwaHc0x/nNb35jDR061IqMjLQSExOtvLw8q66uzu5Yttu3b58l6YJt1qxZlmX99SPYixYtsrxer+V2u6277rrrS/l38nLXqbi4+KL7lyxZYmvu7nap6/TFR9Mvtu3bt8/u6N3uUtfqL3/5i/XNb37TSk5OtiIjI62kpCTrnnvusQ4fPmxbXpdlcatVAABgJtbIAAAAY1FkAACAsSgyAADAWBQZAABgLIoMAAAwFkUGAAAYiyIDAACMRZEBAADGosgAMNLgwYO1evVqu2MAsBlFBgAAGIsiAwAAjEWRAdDtNmzYoOTkZLW2trYZnzx5subMmaOTJ09q8uTJ8nq9iomJ0bhx47R37952z/f+++/L5XLp2LFjobG6ujq5XC69/PLLobG33npLWVlZiomJkdfr1Xe+8x19/PHHnf3yAHQjigyAbjdt2jR98skn2rdvX2js008/1a5du5Sbm6tz587pG9/4hkpLS/X666/r7rvvVnZ2tqqrq8N+zrq6OqWnp2v06NF67bXXtGvXLvn9fk2fPr0zXhIAm/S2OwCAL59rrrlGWVlZKikp0V133SVJ+t3vfqdrr71Wd955pyIiIjRq1KjQ8U888YS2bt2qP/zhD3rooYfCes5nn31Wo0eP1pNPPhka27Rpk1JSUvTee+/p+uuvv7oXBcAWzMgAsEVubq5eeuklBYNBSdKLL76oGTNmKCIiQufOndMjjzyiESNGKC4uTjExMXrnnXeuakbmjTfe0L59+xQTExPa0tLSJEknT57slNcEoPsxIwPAFtnZ2bIsSzt37tS4ceP06quvatWqVZKkRx55RHv27NFPfvITDRs2TNHR0br33nvV1NR00XNFRPz1/8ksywqNNTc3tznm3Llzys7O1sqVKy/4+aSkpM56WQC6GUUGgC2ioqI0depUvfjiizpx4oRuuOEGjRkzRpJ04MAB3XffffrmN78p6a8l5P3332/3XP3795cknT59WqNHj5akNgt/JWnMmDF66aWXNHjwYPXuzT99QE/BW0sAbJObm6udO3dq06ZNys3NDY0PHz5cW7Zs0bFjx/TGG2/o29/+9gWfcPpb0dHRmjBhglasWKF33nlHZWVl+tGPftTmmLy8PH366aeaOXOmjhw5opMnT2r37t2aPXu2Wlpauuw1AuhaFBkAtklPT1d8fLwqKyv17W9/OzT+9NNP65prrtEtt9yi7OxsZWZmhmZr2rNp0yZ9/vnnGjt2rPLz87Vs2bI2+5OTk3XgwAG1tLRo4sSJGjlypPLz8xUXFxd6awqAeVzW376pDAAAYBD+NwQAABiLIgMAAIxFkQEAAMaiyAAAAGNRZAAAgLEoMgAAwFgUGQAAYCyKDAAAMBZFBgAAGIsiAwAAjEWRAQAAxvr/ANzMC5WFVkdHAAAAAElFTkSuQmCC\n" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "code", + "source": [ + "plt.hist(normal_1000_50std, bins = 50)\n", + "plt.xlabel(\"value\")\n", + "plt.ylabel(\"count\")\n", + "plt.ylim(0, 65)\n", + "\n", + "plt.show()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 449 + }, + "id": "693kmlcjt94i", + "outputId": "e95fcea9-1ef5-48f7-8e1c-0f650c3df2bf" + }, + "execution_count": 13, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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SW+//bbq6uqUnJzsVOmO+fvf/64TJ054gx/zo/Z71tLf/vY3s3v3brNo0SITFhZmdu/ebXbv3m1OnTpljDHmjTfeMC+88IL59NNPzf79+82KFStMp06dzIIFC7z7+OKLL0ynTp3Mww8/bPbt22dyc3NNhw4dTF5enlMvq8VcaH7Onj1rrr32WjNq1CizZ88ek5eXZ6Kjo01WVpZ3H+15fn7ovffeM8uWLTN79uwxBw8eNP/7v/9roqOjzc9//nPvmPLycuN2u80999xj9u7da9avX286depknnvuOQcrbzvr1683LpfLrF271nz22WdmxowZJjIy0uest8vFgw8+aLZv325KSkrMjh07TEpKiunevbs5fvy4McaYX/ziF6Znz57m7bffNh9++KHxeDzG4/E4XHXrOXXqlPfzRZJZunSp2b17t/nb3/5mjDEmJyfHREZGmtdff9188sknZvz48SYhIcF8++233n2MHj3aDB061Ozatcu8++67pm/fvmby5MlOvaQW1dj8nDp1yjz00EOmsLDQlJSUmD/96U9m2LBhpm/fvqaqqsq7j/Y8P03RboPMlClTjKTztm3bthljvjs9bciQISYsLMx07tzZDB482KxatcqcO3fOZz/btm0zQ4YMMcHBwaZPnz5mzZo1bf9iWsGF5scYYw4dOmTGjBljQkNDTffu3c2DDz5oamtrffbTXufnh4qKikxycrKJiIgwISEhpn///uapp57y+SAxxpiPP/7Y3HzzzcblcpkrrrjC5OTkOFSxM37961+bnj17muDgYHPDDTeYnTt3Ol2SIyZNmmRiY2NNcHCwueKKK8ykSZPMgQMHvP3ffvutuf/++03Xrl1Np06dzE9/+lNz7NgxBytuXdu2bav3s2bKlCnGmO9OwZ4/f75xu93G5XKZkSNHmuLiYp99nDhxwkyePNmEhYWZ8PBwM3XqVO8/umzX2Px88803ZtSoUSY6OtoEBQWZXr16menTp5/3D4T2PD9NEWDMD843BgAAsMhlfx0ZAABgL4IMAACwFkEGAABYiyADAACsRZABAADWIsgAAABrEWQAAIC1CDIAAMBaBBkAVurdu7eWL1/udBkAHEaQAQAA1iLIAAAAaxFkALS5559/XnFxcaqrq/NpHz9+vO677z4dPHhQ48ePl9vtVlhYmK6//nr96U9/anB/hw4dUkBAgPbs2eNtKy8vV0BAgLZv3+5t27t3r8aMGaOwsDC53W7dc889+uqrr1r65QFoQwQZAG1u4sSJOnHihLZt2+ZtO3nypPLy8pSenq7Tp0/rJz/5ifLz87V7926NHj1a48aN0+HDh5v9O8vLyzVixAgNHTpUH374ofLy8lRWVqa77rqrJV4SAId0dLoAAJefrl27asyYMVq3bp1GjhwpSXrllVfUvXt33X777QoMDNTgwYO943/5y19q48aNeuONNzRr1qxm/c7/+Z//0dChQ/XUU09521avXq34+Hj99a9/1dVXX31pLwqAI1iRAeCI9PR0vfrqq6qurpYkvfzyy7r77rsVGBio06dP66GHHlL//v0VGRmpsLAw7du375JWZD7++GNt27ZNYWFh3i0xMVGSdPDgwRZ5TQDaHisyABwxbtw4GWO0efNmXX/99frzn/+sZcuWSZIeeughbd26Vf/1X/+lq666SqGhobrzzjtVU1NT774CA7/7N5kxxttWW1vrM+b06dMaN26cnn766fOeHxsb21IvC0AbI8gAcERISIgmTJigl19+WQcOHFC/fv00bNgwSdKOHTt077336qc//amk70LIoUOHGtxXdHS0JOnYsWMaOnSoJPkc+CtJw4YN06uvvqrevXurY0c++oD2gq+WADgmPT1dmzdv1urVq5Wenu5t79u3r/7v//5Pe/bs0ccff6yf/exn553h9EOhoaEaPny4cnJytG/fPhUUFOixxx7zGZORkaGTJ09q8uTJ+uCDD3Tw4EFt2bJFU6dO1blz51rtNQJoXQQZAI4ZMWKEoqKiVFxcrJ/97Gfe9qVLl6pr16668cYbNW7cOKWmpnpXaxqyevVqnT17VklJSZozZ46eeOIJn/64uDjt2LFD586d06hRozRw4EDNmTNHkZGR3q+mANgnwPzwS2UAAACL8M8QAABgLYIMAACwFkEGAABYiyADAACsRZABAADWIsgAAABrEWQAAIC1CDIAAMBaBBkAAGAtggwAALAWQQYAAFjr/wH7BMBdObGCwgAAAABJRU5ErkJggg==\n" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "c8Z3xalHJpad" + }, + "source": [ + "How are the two distributions different?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "aUzQOu8uJpad" + }, + "outputs": [], + "source": [ + "# Because of big diference in std, the second plot will assume a wider range of values, although, both bell shapes, with the mean\n", + "# falling real near the same value.. i think so.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "vs58SHhWJpad" + }, + "source": [ + "## Normal Distribution of Real Data\n", + "\n", + "In this challenge we are going to take a look the real data. We will use vehicles.csv file for this exercise" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "q81GHtUNJpae" + }, + "source": [ + "First import vehicles.csv.\n", + "Then plot the histograms for the following variables:\n", + "\n", + "1. Fuel Barrels/Year" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "id": "-ShpHF6XJpae", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 379 + }, + "outputId": "43240ba4-a8b3-4cff-bac4-53bbc1d5f603" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " Make Model Year Engine Displacement \\\n", + "0 AM General DJ Po Vehicle 2WD 1984 2.5 \n", + "1 AM General FJ8c Post Office 1984 4.2 \n", + "2 AM General Post Office DJ5 2WD 1985 2.5 \n", + "3 AM General Post Office DJ8 2WD 1985 4.2 \n", + "4 ASC Incorporated GNX 1987 3.8 \n", + "\n", + " Cylinders Transmission Drivetrain Vehicle Class \\\n", + "0 4.0 Automatic 3-spd 2-Wheel Drive Special Purpose Vehicle 2WD \n", + "1 6.0 Automatic 3-spd 2-Wheel Drive Special Purpose Vehicle 2WD \n", + "2 4.0 Automatic 3-spd Rear-Wheel Drive Special Purpose Vehicle 2WD \n", + "3 6.0 Automatic 3-spd Rear-Wheel Drive Special Purpose Vehicle 2WD \n", + "4 6.0 Automatic 4-spd Rear-Wheel Drive Midsize Cars \n", + "\n", + " Fuel Type Fuel Barrels/Year City MPG Highway MPG Combined MPG \\\n", + "0 Regular 19.388824 18.0 17.0 17.0 \n", + "1 Regular 25.354615 13.0 13.0 13.0 \n", + "2 Regular 20.600625 16.0 17.0 16.0 \n", + "3 Regular 25.354615 13.0 13.0 13.0 \n", + "4 Premium 20.600625 14.0 21.0 16.0 \n", + "\n", + " CO2 Emission Grams/Mile Fuel Cost/Year \n", + "0 522.764706 1950.0 \n", + "1 683.615385 2550.0 \n", + "2 555.437500 2100.0 \n", + "3 683.615385 2550.0 \n", + "4 555.437500 2550.0 " + ], + "text/html": [ + "\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
MakeModelYearEngine DisplacementCylindersTransmissionDrivetrainVehicle ClassFuel TypeFuel Barrels/YearCity MPGHighway MPGCombined MPGCO2 Emission Grams/MileFuel Cost/Year
0AM GeneralDJ Po Vehicle 2WD19842.54.0Automatic 3-spd2-Wheel DriveSpecial Purpose Vehicle 2WDRegular19.38882418.017.017.0522.7647061950.0
1AM GeneralFJ8c Post Office19844.26.0Automatic 3-spd2-Wheel DriveSpecial Purpose Vehicle 2WDRegular25.35461513.013.013.0683.6153852550.0
2AM GeneralPost Office DJ5 2WD19852.54.0Automatic 3-spdRear-Wheel DriveSpecial Purpose Vehicle 2WDRegular20.60062516.017.016.0555.4375002100.0
3AM GeneralPost Office DJ8 2WD19854.26.0Automatic 3-spdRear-Wheel DriveSpecial Purpose Vehicle 2WDRegular25.35461513.013.013.0683.6153852550.0
4ASC IncorporatedGNX19873.86.0Automatic 4-spdRear-Wheel DriveMidsize CarsPremium20.60062514.021.016.0555.4375002550.0
\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + "\n", + " \n", + "
\n", + "\n", + "\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + " \n", + "
\n", + "
\n", + "
\n" + ] + }, + "metadata": {}, + "execution_count": 15 + } + ], + "source": [ + "import pandas as pd\n", + "vehicles = pd.read_csv(\"/content/vehicles.csv\")\n", + "vehicles.head()" + ] + }, + { + "cell_type": "code", + "source": [ + "# 1.\n", + "mean_fuel = vehicles[\"Fuel Barrels/Year\"].mean()\n", + "print(\"MeanFuel Barrels/Year\", mean_fuel)\n", + "plt.hist(vehicles[\"Fuel Barrels/Year\"], bins = 20)\n", + "plt.xlabel(\"Fuel Barrels/Year\")\n", + "plt.ylabel(\"Frequency\")\n", + "plt.show()" + ], + "metadata": { + "id": "Ql5nXz8muiZg", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 466 + }, + "outputId": "4bc97a51-4d20-4ca6-a8dd-c6a00c7b0caa" + }, + "execution_count": 32, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "MeanFuel Barrels/Year 18.097098537171146\n" + ] + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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bNDu3bvVu3dvSdJLL72kYcOG6b/+678UHR2tlStXqqKiQkuXLpXdbtdNN92k3NxcLViwwCM4AQAA62rya4i2bdumiIgIde7cWQ8++KC+/fZb81hOTo5atWplhiFJGjRokJo1a6adO3eaffr27Su73W72SUxMVH5+vk6fPn3Bc5aXl8vtdntsAADgytWkA9GQIUO0YsUKbd68Wc8995y2b9+uoUOHqrq6WpLkcrkUERHh8ZrAwEC1adNGLpfL7BMZGenR5/z++T7fl5GRobCwMHOLiYmp70sDAABNiE8fmf2Ye+65x/y5W7du6t69u6699lpt27ZNAwcObLDzpqenKy0tzdx3u92EIgAArmBNeobo+37yk58oPDxchw4dkiQ5nU6dPHnSo09VVZVOnTplrjtyOp0qKiry6HN+/2JrkxwOh0JDQz02AABw5fKrQHT8+HF9++23ioqKkiQlJCTozJkz2rt3r9lny5YtqqmpUXx8vNknOztblZWVZp+srCx17txZrVu3btwLAAAATZJPA9HZs2eVm5ur3NxcSdKRI0eUm5urgoICnT17Vo899pg++eQTHT16VJs3b9aIESN03XXXKTExUZJ04403asiQIZo0aZJ27dqlHTt2aMqUKbrnnnsUHR0tSRozZozsdrtSUlJ08OBBrV69WosWLfJ4JAYAAKzNp4Foz5496tmzp3r27ClJSktLU8+ePTVnzhwFBAQoLy9Pd955p66//nqlpKQoLi5OH374oRwOhznGypUrdcMNN2jgwIEaNmyYbrvtNo/PGAoLC9PGjRt15MgRxcXF6ZFHHtGcOXN4yz0AADDZDMMwfF1EU+d2uxUWFqbi4mLWE+GK0WHWel+XUGdHM5N8XQIAP1KXv99+tYYIAACgIRCIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5fk0EGVnZ2v48OGK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8DlEwJWpLn+/vZohev7555WYmKguXbqorKxMY8aM0VdffaXw8HC9+eabXhUNAADgK14FomuuuUaffvqpVq1apby8PJ09e1YpKSkaO3asxyJrAAAAf+BVIJK++wDEcePG1WctAAAAPuFVIFqxYsUPHh8/frxXxQAAAPiCV4Fo2rRpHvuVlZU6d+6c7Ha7goKCCEQAAMCvePU5RKdPn/bYzp49q/z8fN12220sqgYAAH7H6+8y+75OnTopMzOz1uwRAABAU1dvgUj6bqH1iRMn6nNIAACABufVGqI///nPHvuGYaiwsFC/+93v9LOf/axeCgMAAGgsXgWi898ldp7NZlO7du10++236/nnn6+PugAAABqN199lBgAAcKWo1zVEAAAA/sirGaLz30p/KRYsWODNKQAAABqNV4Hor3/9q/7617+qsrJSnTt3liR9+eWXCggIUK9evcx+NputfqoEAABoQF4FouHDhyskJESvv/66WrduLem7D2u877771KdPHz3yyCP1WiQAAEBD8moN0fPPP6+MjAwzDElS69at9dvf/pZ3mQEAAL/jVSByu9365ptvarV/8803KikpueyiAAAAGpNXgejuu+/Wfffdp7ffflvHjx/X8ePH9b//+79KSUnRyJEj67tGAACABuXVGqIlS5bo0Ucf1ZgxY1RZWfndQIGBSklJ0fz58+u1QAAAgIbmVSAKCgrSK6+8ovnz5+vw4cOSpGuvvVbBwcH1WhwAAEBjuKwPZiwsLFRhYaE6deqk4OBgGYZRX3UBAAA0Gq8C0bfffquBAwfq+uuv17Bhw1RYWChJSklJ4S33AADA73gViGbMmKHmzZuroKBAQUFBZvsvf/lLbdiwod6KAwAAaAxerSHauHGjPvjgA11zzTUe7Z06ddLXX39dL4UBAAA0Fq9miEpLSz1mhs47deqUHA7HZRcFAADQmLwKRH369NGKFSvMfZvNppqaGs2bN08DBgyot+IAAAAag1ePzObNm6eBAwdqz549qqio0OOPP66DBw/q1KlT2rFjR33XCAAA0KC8miHq2rWrvvzyS912220aMWKESktLNXLkSP31r3/VtddeW981AgAANKg6zxBVVlZqyJAhWrJkiX7zm980RE0AAACNqs4zRM2bN1deXl5D1AIAAOATXj0yGzdunF577bX6rgUAAMAnvFpUXVVVpaVL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WpratGmj0NBQPfzww0pISNBPf/pTSdLgwYPVpUsX3XvvvZo3b55cLpdmz56t1NRUHokBAABTkw5Ex48f1+jRo/Xtt9+qXbt2uu222/TJJ5+oXbt2kqQXXnhBzZo106hRo1ReXq7ExES98sor5usDAgK0bt06Pfjgg0pISFBwcLCSk5P19NNP++qSAABAE2QzDMPwdRFNndvtVlhYmIqLixUaGurrcmAhDbX+BP6PNUTAj6vL32+/WkMEAADQEAhEAADA8ghEAADA8ghEAADA8ghEAADA8ghEAADA8ghEAADA8ghEAADA8ghEAADA8ghEAADA8ghEAADA8ghEAADA8ghEAADA8ghEAADA8ghEAADA8ghEAADA8ghEAADA8ghEAADA8ghEAADA8ghEAADA8ghEAADA8ghEAADA8ghEAADA8ghEAADA8ghEAADA8ghEAADA8ghEAADA8ghEAADA8ghEAADA8ghEAADA8ghEAADA8ghEAADA8gJ9XQAAoO46zFrfYGMfzUxqsLGBpooZIgAAYHkEIgAAYHk8MgPqQUM+vgAANDxmiAAAgOU16UCUkZGhW265RSEhIYqIiNBdd92l/Px8jz79+/eXzWbz2B544AGPPgUFBUpKSlJQUJAiIiL02GOPqaqqqjEvBQAANGFN+pHZ9u3blZqaqltuuUVVVVX69a9/rcGDB+uzzz5TcHCw2W/SpEl6+umnzf2goCDz5+rqaiUlJcnpdOrjjz9WYWGhxo8fr+bNm+vZZ59t1OsBAABNU5MORBs2bPDYX758uSIiIrR371717dvXbA8KCpLT6bzgGBs3btRnn32mTZs2KTIyUjfffLOeeeYZzZw5U3PnzpXdbm/QawAAAE1fk35k9n3FxcWSpDZt2ni0r1y5UuHh4eratavS09N17tw581hOTo66deumyMhIsy0xMVFut1sHDx684HnKy8vldrs9NgAAcOVq0jNE/6qmpkbTp0/Xz372M3Xt2tVsHzNmjGJjYxUdHa28vDzNnDlT+fn5evvttyVJLpfLIwxJMvddLtcFz5WRkaGnnnqqga4EAAA0NX4TiFJTU3XgwAF99NFHHu2TJ082f+7WrZuioqI0cOBAHT58WNdee61X50pPT1daWpq573a7FRMT413hAACgyfOLR2ZTpkzRunXrtHXrVl1zzTU/2Dc+Pl6SdOjQIUmS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hRdUUlKiJ5980jx25swZTZo0SU888YR69epV7+eurKys9zGBKwWBCMAlcTgccjqdHltAQIAmTJigu+66y6Pv9OnT1b9/f3O/pqZGGRkZ6tixo1q2bKkePXroT3/6U51rCAkJkdPp1NVXX60BAwYoOTnZYybl22+/1ejRo3X11VcrKChI3bp105tvvukxRv/+/TVlyhRNnz5d4eHhSkxMNB99/eUvf1FcXJwcDoc++uijOtf99ddfa/jw4WrdurWCg4N100036f333/fo8+677+rOO+9UaGioli1bpueff147d+40f29XX3210tPTdezYMf3iF79Qq1at1KZNG40YMUJHjx41x9m9e7fuuOMOhYeHKywsTP369as1q2Sz2bR48WLdeeedCg4O1n/+53/W+XcOWAWBCECDy8jI0IoVK7RkyRIdPHhQM2bM0Lhx47R9+3avx/z73/+u9957T/Hx8WZbWVmZ4uLitH79eh04cECTJ0/Wvffeq127dnm89vXXX5fdbteOHTu0ZMkSs33WrFnKzMzU559/ru7du9e57tTUVJWXlys7O1v79+/Xc889p6uuuso8fubMGX300Ue68847JUkDBgzQQw89pOTkZK1Zs0ZvvfWWVqxYIcMwlJiYqJCQEH344YfasWOHrrrqKg0ZMsSc0SopKVFycrI++ugjffLJJ+rUqZOGDRumkpISj5rmzp2ru+++W/v379fEiRO9/n0DVzwDAH5EcnKyERAQYAQHB5vbz3/+c/PYiBEjPPpPmzbN6Nevn2EYhlFWVmYEBQUZH3/8sUeflJQUY/To0YZhGMbWrVsNScbp06cvWkNsbKxht9uN4OBgo0WLFoYkIz4+/gdfYxiGkZSUZDzyyCPmfr9+/YyePXt69Dl//rVr15pt3tTdrVs3Y+7cuRetZeXKlUbv3r092s6dO2d07tzZaNasmfHCCy8YhmEYf/jDH4zOnTsbNTU1Zr/y8nKjZcuWxgcffHDBsaurq42QkBDjvffeM9skGdOnT79oPQD+T6BP0xgAvzFgwAAtXrzY3A8ODr6k1x06dEjnzp3THXfc4dFeUVGhnj171qmGxx57TBMmTJBhGDp27Jh+/etfKykpSdnZ2QoICFB1dbWeffZZvfXWW/r73/+uiooKlZeXKygoyGOcuLi4C47fu3fvy6p76tSpevDBB7Vx40YNGjRIo0aNUvfu3c3j5x+X/auWLVvq0Ucf1YwZMzRt2jRJ0qeffqpDhw4pJCTEo29ZWZkOHz4sSSoqKtLs2bO1bds2nTx5UtXV1Tp37pwKCgouek0ALo5ABOCSBAcH67rrrqvV3qxZMxmG4dH2r4t3z549K0lav369rr76ao9+DoejTjWEh4ebNXTq1EkLFy5UQkKCtm7dqkGDBmn+/PlatGiRFi5cqG7duik4OFjTp0+vtXD6YmHuX9u9qftXv/qVEhMTtX79em3cuFEZGRl6/vnn9fDDD6uiokIbNmzQr3/961qvCwwMVEBAgGw2m3nuuLg4rVy5slbfdu3aSZKSk5P17bffatGiRYqNjZXD4VBCQsIlXysATwQiAJelXbt2OnDggEdbbm6umjdvLknq0qWLHA6HCgoK1K9fv3o9d0BAgCTpn//8pyRpx44dGjFihMaNGyfpu8XcX375pbp06VLnsb2tOyYmRg888IAeeOABpaen67//+7/18MMPa9u2bWrdurV69Ojxo2P06tVLq1evVkREhEJDQy/YZ8eOHXrllVc0bNgwSdKxY8f0j3/845LrBOCJRdUALsvtt9+uPXv2aMWKFfrqq6/05JNPegSkkJAQ85HQ66+/rsOHD2vfvn166aWX9Prrr9fpXCUlJXK5XCosLNSuXbv02GOPqV27dvq3f/s3Sd/NGmVlZenjjz/W559/rvvvv19FRUVeXZc3dU+fPl0ffPCBjhw5on379mnr1q268cYbJUl//vOfaz0uu5ixY8cqPDxcI0aM0IcffqgjR45o27Ztmjp1qo4fP25e6x/+8Ad9/vnn2rlzp8aOHauWLVt6da0ACEQALlNiYqKeeOIJPf7447rllltUUlKi8ePHe/R55pln9MQTTygjI0M33nijhgwZovXr19f5c4zmzJmjqKgoRUdH69///d8VHBysjRs3qm3btpKk2bNnq1evXkpMTFT//v3ldDprfSRAXdS17urqaqWmppp9r7/+er3yyiuS6haIgoKClJ2drfbt22vkyJG68cYblZKSorKyMnPG6LXXXtPp06fVq1cv3XvvvZo6daoiIiK8vlbA6mzG9x/+AwDq1b59+3T77bfrm2++MR8lAmhamCECgAZWVVWll156iTAENGHMEAEAAMtjhggAAFgegQgAAFgegQgAAFgegQgAAFgegQgAAFgegQgAAFgegQgAAFgegQgAAFgegQgAAFje/wN22jfs9Z4K5AAAAABJRU5ErkJggg==\n" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Qe3CSdSaJpae" + }, + "source": [ + "2. CO2 Emission Grams/Mile" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": { + "id": "57OjJfcPJpae", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 466 + }, + "outputId": "7963a5be-6b28-446b-e738-86e3f1555984" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Mean CO2 Emission Grams/Mile 487.99707472618076\n" + ] + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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FRUVpWXLlun48eN69dVX5efnp969e6uwsFDz5893C04AAMC+vPoaotraWo0fP16zZs1S79696/Tn5eUpJCTECkOSFB8fLx8fH+Xn51tjBg8eLD8/P2tMQkKCioqKdPjw4VMeu6qqSi6Xy20DAADnJq8ORE8//bR8fX1177331tvvdDoVHh7u1ubr66vQ0FA5nU5rTEREhNuYk69PjqlPWlqagoODrS06OvpspgIAALyY1waigoICLViwQJmZmXI4HM1+/Dlz5qiiosLa9u/f3+w1AACA5uG1gejDDz9UaWmpOnfuLF9fX/n6+urbb7/VzJkz1bVrV0lSZGSkSktL3d534sQJlZWVKTIy0hpTUlLiNubk65Nj6uPv76+goCC3DQAAnJu8NhCNHz9e27dvV2FhobVFRUVp1qxZeu+99yRJcXFxKi8vV0FBgfW+9evXq7a2VgMGDLDG5Obmqrq62hqTnZ2tHj16qEOHDs07KQAA4JU8epdZZWWlvvrqK+v13r17VVhYqNDQUHXu3FlhYWFu41u3bq3IyEj16NFDktSrVy8NHz5cEydOVEZGhqqrqzV58mSNGzfOukX/lltu0aOPPqqUlBQ98MAD2rFjhxYsWKDnnnuu+SYKAAC8mkcD0datWzVkyBDr9YwZMyRJycnJyszMPK19LFu2TJMnT9bQoUPl4+OjsWPHauHChVZ/cHCw3n//faWmpqpfv37q2LGj5s6dyy33AADA4jDGGE8X0RK4XC4FBweroqKC64lwTug6e62nSzhj++Yl/vYgAPiZ0/389tpriAAAAJoLgQgAANgegQgAANgegQgAANgegQgAANgegQgAANgegQgAANgegQgAANgegQgAANgegQgAANgegQgAANgegQgAANgegQgAANgegQgAANgegQgAANgegQgAANgegQgAANgegQgAANgegQgAANgegQgAANgegQgAANgegQgAANgegQgAANgegQgAANgegQgAANgegQgAANgegQgAANgegQgAANgegQgAANier6cLAIDT1XX22ibb9755iU22bwDejzNEAADA9ghEAADA9ghEAADA9ghEAADA9ghEAADA9jwaiHJzczVq1ChFRUXJ4XBo9erVVl91dbUeeOAB9e3bV23btlVUVJRuu+02HThwwG0fZWVlSkpKUlBQkEJCQpSSkqLKykq3Mdu3b9fVV1+tgIAARUdHKz09vTmmBwAAWgiPBqKjR4/qkksu0aJFi+r0/fDDD/r000/18MMP69NPP9XKlStVVFSk6667zm1cUlKSdu7cqezsbK1Zs0a5ubmaNGmS1e9yuTRs2DB16dJFBQUFeuaZZ/TII4/o5ZdfbvL5AQCAlsFhjDGeLkKSHA6HVq1apdGjR59yzJYtW3TFFVfo22+/VefOnbVr1y7FxsZqy5Yt6t+/vyQpKytLI0eO1HfffaeoqCgtXrxYDz74oJxOp/z8/CRJs2fP1urVq7V79+5THquqqkpVVVXWa5fLpejoaFVUVCgoKKhxJg14UFM+06cl4jlEwLnJ5XIpODj4Nz+/W9Q1RBUVFXI4HAoJCZEk5eXlKSQkxApDkhQfHy8fHx/l5+dbYwYPHmyFIUlKSEhQUVGRDh8+fMpjpaWlKTg42Nqio6ObZlIAAMDjWkwgOnbsmB544AHdfPPNVsJzOp0KDw93G+fr66vQ0FA5nU5rTEREhNuYk69PjqnPnDlzVFFRYW379+9vzOkAAAAv0iJ+uqO6ulp/+tOfZIzR4sWLm+WY/v7+8vf3b5ZjAQAAz/L6QHQyDH377bdav3692/d/kZGRKi0tdRt/4sQJlZWVKTIy0hpTUlLiNubk65NjAACAvXn1V2Ynw9CePXv0z3/+U2FhYW79cXFxKi8vV0FBgdW2fv161dbWasCAAdaY3NxcVVdXW2Oys7PVo0cPdejQoXkmAgAAvJpHA1FlZaUKCwtVWFgoSdq7d68KCwtVXFys6upq3Xjjjdq6dauWLVummpoaOZ1OOZ1OHT9+XJLUq1cvDR8+XBMnTtTmzZv18ccfa/LkyRo3bpyioqIkSbfccov8/PyUkpKinTt36s0339SCBQs0Y8YMT00bAAB4GY/edv/BBx9oyJAhddqTk5P1yCOPKCYmpt73bdiwQddcc42knx7MOHnyZL3zzjvy8fHR2LFjtXDhQrVr184av337dqWmpmrLli3q2LGjpkyZogceeOCMaj3d2/aAloLb7t1x2z1wbjrdz2+veQ6RtyMQ4VxDIHJHIALOTefkc4gAAACaAoEIAADYHoEIAADYHoEIAADYHoEIAADYHoEIAADYHoEIAADYHoEIAADYHoEIAADYHoEIAADYHoEIAADYHoEIAADYHoEIAADYHoEIAADYHoEIAADYHoEIAADYHoEIAADYHoEIAADYHoEIAADYHoEIAADYHoEIAADYHoEIAADYHoEIAADYHoEIAADYHoEIAADYHoEIAADYHoEIAADYHoEIAADYHoEIAADYHoEIAADYHoEIAADYHoEIAADYHoEIAADYnq+nCwBwal1nr/V0CQBgCx49Q5Sbm6tRo0YpKipKDodDq1evdus3xmju3Lnq1KmTAgMDFR8frz179riNKSsrU1JSkoKCghQSEqKUlBRVVla6jdm+fbuuvvpqBQQEKDo6Wunp6U09NQAA0IJ4NBAdPXpUl1xyiRYtWlRvf3p6uhYuXKiMjAzl5+erbdu2SkhI0LFjx6wxSUlJ2rlzp7Kzs7VmzRrl5uZq0qRJVr/L5dKwYcPUpUsXFRQU6JlnntEjjzyil19+ucnnBwAAWgaHMcZ4ughJcjgcWrVqlUaPHi3pp7NDUVFRmjlzpu677z5JUkVFhSIiIpSZmalx48Zp165dio2N1ZYtW9S/f39JUlZWlkaOHKnvvvtOUVFRWrx4sR588EE5nU75+flJkmbPnq3Vq1dr9+7dp6ynqqpKVVVV1muXy6Xo6GhVVFQoKCioiVYBcMdXZs1n37xET5cAoAm4XC4FBwf/5ue3115UvXfvXjmdTsXHx1ttwcHBGjBggPLy8iRJeXl5CgkJscKQJMXHx8vHx0f5+fnWmMGDB1thSJISEhJUVFSkw4cPn/L4aWlpCg4Otrbo6OjGniIAAPASXhuInE6nJCkiIsKtPSIiwupzOp0KDw936/f19VVoaKjbmPr28fNj1GfOnDmqqKiwtv3795/dhAAAgNfiLrNT8Pf3l7+/v6fLAAAAzcBrzxBFRkZKkkpKStzaS0pKrL7IyEiVlpa69Z84cUJlZWVuY+rbx8+PAQAA7M1rA1FMTIwiIyOVk5NjtblcLuXn5ysuLk6SFBcXp/LychUUFFhj1q9fr9raWg0YMMAak5ubq+rqamtMdna2evTooQ4dOjTTbAAAgDfzaCCqrKxUYWGhCgsLJf10IXVhYaGKi4vlcDg0bdo0PfHEE3r77bf1+eef67bbblNUVJR1J1qvXr00fPhwTZw4UZs3b9bHH3+syZMna9y4cYqKipIk3XLLLfLz81NKSop27typN998UwsWLNCMGTM8NGsAAOBtPHoN0datWzVkyBDr9cmQkpycrMzMTN1///06evSoJk2apPLycg0aNEhZWVkKCAiw3rNs2TJNnjxZQ4cOlY+Pj8aOHauFCxda/cHBwXr//feVmpqqfv36qWPHjpo7d67bs4oAAIC9ec1ziLzd6T7HAGhMPIeo+fAcIuDc1OKfQwQAANBcGhSIvvnmm8auAwAAwGMaFIguvPBCDRkyRK+99prb74oBAAC0RA0KRJ9++qkuvvhizZgxQ5GRkbrzzju1efPmxq4NAACgWTQoEF166aVasGCBDhw4oFdffVUHDx7UoEGD1KdPH82fP1+HDh1q7DoBAACazFldVO3r66sxY8ZoxYoVevrpp/XVV1/pvvvuU3R0tG677TYdPHiwseoEAABoMmcViLZu3ap77rlHnTp10vz583Xffffp66+/VnZ2tg4cOKDrr7++seoEAABoMg16MOP8+fO1ZMkSFRUVaeTIkfrb3/6mkSNHysfnp3wVExOjzMxMde3atTFrBQAAaBINCkSLFy/WHXfcodtvv12dOnWqd0x4eLheeeWVsyoOAACgOTQoEO3Zs+c3x/j5+Sk5ObkhuwcAAGhWDbqGaMmSJVqxYkWd9hUrVmjp0qVnXRQAAEBzalAgSktLU8eOHeu0h4eH66mnnjrrogAAAJpTgwJRcXGxYmJi6rR36dJFxcXFZ10UAABAc2pQIAoPD9f27dvrtH/22WcKCws766IAAACaU4MC0c0336x7771XGzZsUE1NjWpqarR+/XpNnTpV48aNa+waAQAAmlSD7jJ7/PHHtW/fPg0dOlS+vj/tora2VrfddhvXEAEAgBanQYHIz89Pb775ph5//HF99tlnCgwMVN++fdWlS5fGrg8AAKDJNSgQnXTRRRfpoosuaqxaAAAAPKJBgaimpkaZmZnKyclRaWmpamtr3frXr1/fKMUBAAA0hwYFoqlTpyozM1OJiYnq06ePHA5HY9cFAADQbBoUiJYvX66///3vGjlyZGPXAwAA0OwadNu9n5+fLrzwwsauBQAAwCMaFIhmzpypBQsWyBjT2PUAAAA0uwZ9ZfbRRx9pw4YNWrdunXr37q3WrVu79a9cubJRigMAAGgODQpEISEhuuGGGxq7FgAAAI9oUCBasmRJY9cBAADgMQ26hkiSTpw4oX/+85966aWXdOTIEUnSgQMHVFlZ2WjFAQAANIcGnSH69ttvNXz4cBUXF6uqqkr/8R//ofbt2+vpp59WVVWVMjIyGrtOAACAJtOgM0RTp05V//79dfjwYQUGBlrtN9xwg3JychqtOAAAgObQoDNEH374oTZt2iQ/Pz+39q5du+r7779vlMIAAACaS4POENXW1qqmpqZO+3fffaf27dufdVEAAADNqUGBaNiwYXr++eet1w6HQ5WVlfrLX/7Cz3kAAIAWp0FfmT377LNKSEhQbGysjh07pltuuUV79uxRx44d9cYbbzR2jQAAAE2qQYHo/PPP12effably5dr+/btqqysVEpKipKSktwusgYAAGgJGvwcIl9fX916661KT0/Xiy++qP/8z/9s9DBUU1Ojhx9+WDExMQoMDFS3bt30+OOPu/2GmjFGc+fOVadOnRQYGKj4+Hjt2bPHbT9lZWVKSkpSUFCQQkJClJKSwvOSAACApUFniP72t7/9av9tt93WoGJ+6emnn9bixYu1dOlS9e7dW1u3btWECRMUHByse++9V5KUnp6uhQsXaunSpYqJidHDDz+shIQEffHFFwoICJAkJSUl6eDBg8rOzlZ1dbUmTJigSZMm6fXXX2+UOgEAQMvmMA34yfoOHTq4va6urtYPP/wgPz8/tWnTRmVlZY1S3LXXXquIiAi98sorVtvYsWMVGBio1157TcYYRUVFaebMmbrvvvskSRUVFYqIiFBmZqbGjRunXbt2KTY2Vlu2bFH//v0lSVlZWRo5cqS+++47RUVF1XvsqqoqVVVVWa9dLpeio6NVUVGhoKCgRpkf8Fu6zl7r6RJsY9+8RE+XAKAJuFwuBQcH/+bnd4O+Mjt8+LDbVllZqaKiIg0aNKhRL6q+6qqrlJOToy+//FKS9Nlnn+mjjz7SiBEjJEl79+6V0+lUfHy89Z7g4GANGDBAeXl5kqS8vDyFhIRYYUiS4uPj5ePjo/z8/FMeOy0tTcHBwdYWHR3daPMCAADepUFfmdWne/fumjdvnm699Vbt3r27UfY5e/ZsuVwu9ezZU61atVJNTY2efPJJJSUlSZKcTqckKSIiwu19ERERVp/T6VR4eLhbv6+vr0JDQ60x9ZkzZ45mzJhhvT55hggAAJx7Gi0QST8FjQMHDjTa/v7+979r2bJlev3119W7d28VFhZq2rRpioqKUnJycqMdpz7+/v7y9/dv0mMAAADv0KBA9Pbbb7u9Nsbo4MGD+p//+R8NHDiwUQqTpFmzZmn27NkaN26cJKlv37769ttvlZaWpuTkZEVGRkqSSkpK1KlTJ+t9JSUluvTSSyVJkZGRKi0tddvviRMnVFZWZr0fAADYW4MC0ejRo91eOxwOnXfeefrjH/+oZ599tjHqkiT98MMP8vFxv8ypVatWqq2tlSTFxMQoMjJSOTk5VgByuVzKz8/X3XffLUmKi4tTeXm5CgoK1K9fP0nS+vXrVVtbqwEDBjRarQAAoOVqUCA6GUia2qhRo/Tkk0+qc+fO6t27t7Zt26b58+frjjvukPRTEJs2bZqeeOIJde/e3brtPioqygptvXr10vDhwzVx4kRlZGSourpakydP1rhx4055hxkAALCXRr2GqLG98MILevjhh3XPPfeotLRUUVFRuvPOOzV37lxrzP3336+jR49q0qRJKi8v16BBg5SVlWU9g0iSli1bpsmTJ2vo0KHy8fHR2LFjtXDhQk9MCQAAeKEGPYfo53df/Zb58+ef6e690uk+xwBoTDyHqPnwHCLg3HS6n98NOkO0bds2bdu2TdXV1erRo4ck6csvv1SrVq102WWXWeMcDkdDdg8AANCsGhSIRo0apfbt22vp0qXWU6sPHz6sCRMm6Oqrr9bMmTMbtUgAAICm1KAnVT/77LNKS0tz+wmPDh066IknnmjUu8wAAACaQ4MCkcvl0qFDh+q0Hzp0SEeOHDnrogAAAJpTgwLRDTfcoAkTJmjlypX67rvv9N133+kf//iHUlJSNGbMmMauEQAAoEk16BqijIwM3XfffbrllltUXV390458fZWSkqJnnnmmUQsEAABoag0KRG3atNGLL76oZ555Rl9//bUkqVu3bmrbtm2jFgcAANAcGvSV2UkHDx7UwYMH1b17d7Vt21YNeKQRAACAxzUoEP373//W0KFDddFFF2nkyJE6ePCgJCklJYVb7gEAQIvToEA0ffp0tW7dWsXFxWrTpo3V/uc//1lZWVmNVhwAAEBzaNA1RO+//77ee+89nX/++W7t3bt317ffftsohQEAADSXBp0hOnr0qNuZoZPKysrk7+9/1kUBAAA0pwYFoquvvlp/+9vfrNcOh0O1tbVKT0/XkCFDGq04AACA5tCgr8zS09M1dOhQbd26VcePH9f999+vnTt3qqysTB9//HFj1wgAANCkGnSGqE+fPvryyy81aNAgXX/99Tp69KjGjBmjbdu2qVu3bo1dIwAAQJM64zNE1dXVGj58uDIyMvTggw82RU0AAADN6ozPELVu3Vrbt29viloAAAA8okFfmd1666165ZVXGrsWAAAAj2jQRdUnTpzQq6++qn/+85/q169fnd8wmz9/fqMUBwAA0BzOKBB988036tq1q3bs2KHLLrtMkvTll1+6jXE4HI1XHQAAQDM4o0DUvXt3HTx4UBs2bJD00091LFy4UBEREU1SHAAAQHM4o2uIfvlr9uvWrdPRo0cbtSAAAIDm1qCLqk/6ZUACAABoic4oEDkcjjrXCHHNEAAAaOnO6BoiY4xuv/126wdcjx07prvuuqvOXWYrV65svAoBAACa2BkFouTkZLfXt956a6MWAwAA4AlnFIiWLFnSVHUAAAB4zFldVA0AAHAuIBABAADbIxABAADbIxABAADbIxABAADbIxABAADbIxABAADb8/pA9P333+vWW29VWFiYAgMD1bdvX23dutXqN8Zo7ty56tSpkwIDAxUfH689e/a47aOsrExJSUkKCgpSSEiIUlJSVFlZ2dxTAQAAXsqrA9Hhw4c1cOBAtW7dWuvWrdMXX3yhZ599Vh06dLDGpKena+HChcrIyFB+fr7atm2rhIQEHTt2zBqTlJSknTt3Kjs7W2vWrFFubq4mTZrkiSkBAAAv5DBe/JP1s2fP1scff6wPP/yw3n5jjKKiojRz5kzdd999kqSKigpFREQoMzNT48aN065duxQbG6stW7aof//+kqSsrCyNHDlS3333naKiourdd1VVlaqqqqzXLpdL0dHRqqioUFBQUCPPFKhf19lrPV2Cbeybl+jpEgA0AZfLpeDg4N/8/D6jn+5obm+//bYSEhJ00003aePGjfrd736ne+65RxMnTpQk7d27V06nU/Hx8dZ7goODNWDAAOXl5WncuHHKy8tTSEiIFYYkKT4+Xj4+PsrPz9cNN9xQ77HT0tL06KOPNu0Ecc4guABAy+bVX5l98803Wrx4sbp376733ntPd999t+69914tXbpUkuR0OiVJERERbu+LiIiw+pxOp8LDw936fX19FRoaao2pz5w5c1RRUWFt+/fvb8ypAQAAL+LVZ4hqa2vVv39/PfXUU5Kk3//+99qxY4cyMjKUnJzcpMf29/eXv79/kx4DAAB4B68+Q9SpUyfFxsa6tfXq1UvFxcWSpMjISElSSUmJ25iSkhKrLzIyUqWlpW79J06cUFlZmTUGAADYm1efIRo4cKCKiorc2r788kt16dJFkhQTE6PIyEjl5OTo0ksvlfTTxVP5+fm6++67JUlxcXEqLy9XQUGB+vXrJ0lav369amtrNWDAgOabDACv1lTXgXGxNtAyeHUgmj59uq666io99dRT+tOf/qTNmzfr5Zdf1ssvvyxJcjgcmjZtmp544gl1795dMTExevjhhxUVFaXRo0dL+umM0vDhwzVx4kRlZGSourpakydP1rhx4055hxkAALAXrw5El19+uVatWqU5c+boscceU0xMjJ5//nklJSVZY+6//34dPXpUkyZNUnl5uQYNGqSsrCwFBARYY5YtW6bJkydr6NCh8vHx0dixY7Vw4UJPTAkAAHghr34OkTc53ecYwJ647R6nwldmgGed7ue3V19UDQAA0BwIRAAAwPYIRAAAwPYIRAAAwPYIRAAAwPYIRAAAwPYIRAAAwPYIRAAAwPYIRAAAwPYIRAAAwPYIRAAAwPYIRAAAwPYIRAAAwPYIRAAAwPYIRAAAwPYIRAAAwPYIRAAAwPYIRAAAwPYIRAAAwPZ8PV0AAJzLus5e22T73jcvscn2DdgNZ4gAAIDtEYgAAIDtEYgAAIDtEYgAAIDtEYgAAIDtEYgAAIDtEYgAAIDtEYgAAIDtEYgAAIDtEYgAAIDtEYgAAIDtEYgAAIDtEYgAAIDtEYgAAIDttahANG/ePDkcDk2bNs1qO3bsmFJTUxUWFqZ27dpp7NixKikpcXtfcXGxEhMT1aZNG4WHh2vWrFk6ceJEM1cPAAC8VYsJRFu2bNFLL72kiy++2K19+vTpeuedd7RixQpt3LhRBw4c0JgxY6z+mpoaJSYm6vjx49q0aZOWLl2qzMxMzZ07t7mnAAAAvFSLCESVlZVKSkrSX//6V3Xo0MFqr6io0CuvvKL58+frj3/8o/r166clS5Zo06ZN+uSTTyRJ77//vr744gu99tpruvTSSzVixAg9/vjjWrRokY4fP+6pKQEAAC/SIgJRamqqEhMTFR8f79ZeUFCg6upqt/aePXuqc+fOysvLkyTl5eWpb9++ioiIsMYkJCTI5XJp586dpzxmVVWVXC6X2wYAAM5Nvp4u4LcsX75cn376qbZs2VKnz+l0ys/PTyEhIW7tERERcjqd1pifh6GT/Sf7TiUtLU2PPvroWVYPAABaAq8+Q7R//35NnTpVy5YtU0BAQLMee86cOaqoqLC2/fv3N+vxAQBA8/HqQFRQUKDS0lJddtll8vX1la+vrzZu3KiFCxfK19dXEREROn78uMrLy93eV1JSosjISElSZGRknbvOTr4+OaY+/v7+CgoKctsAAMC5yasD0dChQ/X555+rsLDQ2vr376+kpCTrv1u3bq2cnBzrPUVFRSouLlZcXJwkKS4uTp9//rlKS0utMdnZ2QoKClJsbGyzzwkAAHgfr76GqH379urTp49bW9u2bRUWFma1p6SkaMaMGQoNDVVQUJCmTJmiuLg4XXnllZKkYcOGKTY2VuPHj1d6erqcTqceeughpaamyt/fv9nnBAAAvI9XB6LT8dxzz8nHx0djx45VVVWVEhIS9OKLL1r9rVq10po1a3T33XcrLi5Obdu2VXJysh577DEPVg0AALyJwxhjPF1ES+ByuRQcHKyKigquJ0IdXWev9XQJsKF98xI9XQLg9U7389urryECAABoDgQiAABgewQiAABgewQiAABgewQiAABgewQiAABgewQiAABgewQiAABgewQiAABgewQiAABgewQiAABgewQiAABgewQiAABgewQiAABgewQiAABgewQiAABgewQiAABgewQiAABge76eLgAA0DBdZ69tkv3um5fYJPsFvBlniAAAgO0RiAAAgO0RiAAAgO0RiAAAgO0RiAAAgO0RiAAAgO0RiAAAgO0RiAAAgO0RiAAAgO0RiAAAgO0RiAAAgO0RiAAAgO0RiAAAgO0RiAAAgO0RiAAAgO15fSBKS0vT5Zdfrvbt2ys8PFyjR49WUVGR25hjx44pNTVVYWFhateuncaOHauSkhK3McXFxUpMTFSbNm0UHh6uWbNm6cSJE805FQAA4KW8PhBt3LhRqamp+uSTT5Sdna3q6moNGzZMR48etcZMnz5d77zzjlasWKGNGzfqwIEDGjNmjNVfU1OjxMREHT9+XJs2bdLSpUuVmZmpuXPnemJKAADAyziMMcbTRZyJQ4cOKTw8XBs3btTgwYNVUVGh8847T6+//rpuvPFGSdLu3bvVq1cv5eXl6corr9S6det07bXX6sCBA4qIiJAkZWRk6IEHHtChQ4fk5+f3m8d1uVwKDg5WRUWFgoKCmnSOaHm6zl7r6RKARrNvXqKnSwAazel+fnv9GaJfqqiokCSFhoZKkgoKClRdXa34+HhrTM+ePdW5c2fl5eVJkvLy8tS3b18rDElSQkKCXC6Xdu7cWe9xqqqq5HK53DYAAHBualGBqLa2VtOmTdPAgQPVp08fSZLT6ZSfn59CQkLcxkZERMjpdFpjfh6GTvaf7KtPWlqagoODrS06OrqRZwMAALxFiwpEqamp2rFjh5YvX97kx5ozZ44qKiqsbf/+/U1+TAAA4Bm+ni7gdE2ePFlr1qxRbm6uzj//fKs9MjJSx48fV3l5udtZopKSEkVGRlpjNm/e7La/k3ehnRzzS/7+/vL392/kWQAAAG/k9WeIjDGaPHmyVq1apfXr1ysmJsatv1+/fmrdurVycnKstqKiIhUXFysuLk6SFBcXp88//1ylpaXWmOzsbAUFBSk2NrZ5JgIAALyW158hSk1N1euvv6633npL7du3t675CQ4OVmBgoIKDg5WSkqIZM2YoNDRUQUFBmjJliuLi4nTllVdKkoYNG6bY2FiNHz9e6enpcjqdeuihh5SamspZIAAA4P2BaPHixZKka665xq19yZIluv322yVJzz33nHx8fDR27FhVVVUpISFBL774ojW2VatWWrNmje6++27FxcWpbdu2Sk5O1mOPPdZc0wAAAF6sxT2HyFN4DhF+Dc8hwrmE5xDhXHLOPocIAACgsRGIAACA7RGIAACA7Xn9RdUAgObVlNfEcX0SvBVniAAAgO1xhgi2wZ1gAIBT4QwRAACwPQIRAACwPQIRAACwPQIRAACwPQIRAACwPQIRAACwPQIRAACwPQIRAACwPQIRAACwPQIRAACwPQIRAACwPQIRAACwPQIRAACwPQIRAACwPQIRAACwPQIRAACwPQIRAACwPQIRAACwPQIRAACwPQIRAACwPQIRAACwPQIRAACwPQIRAACwPV9PFwAAsI+us9c2yX73zUtskv3CPjhDBAAAbI9ABAAAbI9ABAAAbI9riOB1muoaAwAATsVWZ4gWLVqkrl27KiAgQAMGDNDmzZs9XRIAAPACtjlD9Oabb2rGjBnKyMjQgAED9PzzzyshIUFFRUUKDw/3dHktDmdxAHiTpvw3qanuYGuJNZ/LbHOGaP78+Zo4caImTJig2NhYZWRkqE2bNnr11Vc9XRoAAPAwW5whOn78uAoKCjRnzhyrzcfHR/Hx8crLy6v3PVVVVaqqqrJeV1RUSJJcLlej19fnL+81+j4BAI2jKf7dl6Taqh+aZL9S09XclJ9XOx5NaJL9nlwLY8yvjrNFIPrXv/6lmpoaRUREuLVHRERo9+7d9b4nLS1Njz76aJ326OjoJqkRAOCdgp/3dAVnjprrOnLkiIKDg0/Zb4tA1BBz5szRjBkzrNe1tbUqKytTWFiYHA6H21iXy6Xo6Gjt379fQUFBzV3qOYf1bDysZeNiPRsX69m4WM/6GWN05MgRRUVF/eo4WwSijh07qlWrViopKXFrLykpUWRkZL3v8ff3l7+/v1tbSEjIrx4nKCiI/wkbEevZeFjLxsV6Ni7Ws3GxnnX92pmhk2xxUbWfn5/69eunnJwcq622tlY5OTmKi4vzYGUAAMAb2OIMkSTNmDFDycnJ6t+/v6644go9//zzOnr0qCZMmODp0gAAgIfZJhD9+c9/1qFDhzR37lw5nU5deumlysrKqnOhdUP4+/vrL3/5S52v2NAwrGfjYS0bF+vZuFjPxsV6nh2H+a370AAAAM5xtriGCAAA4NcQiAAAgO0RiAAAgO0RiAAAgO0RiM7SokWL1LVrVwUEBGjAgAHavHmzp0vyOmlpabr88svVvn17hYeHa/To0SoqKnIbc+zYMaWmpiosLEzt2rXT2LFj6zxIs7i4WImJiWrTpo3Cw8M1a9YsnThxojmn4pXmzZsnh8OhadOmWW2s55n5/vvvdeuttyosLEyBgYHq27evtm7davUbYzR37lx16tRJgYGBio+P1549e9z2UVZWpqSkJAUFBSkkJEQpKSmqrKxs7ql4XE1NjR5++GHFxMQoMDBQ3bp10+OPP+72O1Ks56nl5uZq1KhRioqKksPh0OrVq936G2vttm/frquvvloBAQGKjo5Wenp6U0/N+xk02PLly42fn5959dVXzc6dO83EiRNNSEiIKSkp8XRpXiUhIcEsWbLE7NixwxQWFpqRI0eazp07m8rKSmvMXXfdZaKjo01OTo7ZunWrufLKK81VV11l9Z84ccL06dPHxMfHm23btpl3333XdOzY0cyZM8cTU/IamzdvNl27djUXX3yxmTp1qtXOep6+srIy06VLF3P77beb/Px8880335j33nvPfPXVV9aYefPmmeDgYLN69Wrz2Wefmeuuu87ExMSYH3/80RozfPhwc8kll5hPPvnEfPjhh+bCCy80N998syem5FFPPvmkCQsLM2vWrDF79+41K1asMO3atTMLFiywxrCep/buu++aBx980KxcudJIMqtWrXLrb4y1q6ioMBERESYpKcns2LHDvPHGGyYwMNC89NJLzTVNr0QgOgtXXHGFSU1NtV7X1NSYqKgok5aW5sGqvF9paamRZDZu3GiMMaa8vNy0bt3arFixwhqza9cuI8nk5eUZY376R8LHx8c4nU5rzOLFi01QUJCpqqpq3gl4iSNHjpju3bub7Oxs84c//MEKRKznmXnggQfMoEGDTtlfW1trIiMjzTPPPGO1lZeXG39/f/PGG28YY4z54osvjCSzZcsWa8y6deuMw+Ew33//fdMV74USExPNHXfc4dY2ZswYk5SUZIxhPc/ELwNRY63diy++aDp06OD2d/2BBx4wPXr0aOIZeTe+Mmug48ePq6CgQPHx8Vabj4+P4uPjlZeX58HKvF9FRYUkKTQ0VJJUUFCg6upqt7Xs2bOnOnfubK1lXl6e+vbt6/YgzYSEBLlcLu3cubMZq/ceqampSkxMdFs3ifU8U2+//bb69++vm266SeHh4fr973+vv/71r1b/3r175XQ63dYzODhYAwYMcFvPkJAQ9e/f3xoTHx8vHx8f5efnN99kvMBVV12lnJwcffnll5Kkzz77TB999JFGjBghifU8G421dnl5eRo8eLD8/PysMQkJCSoqKtLhw4ebaTbexzZPqm5s//rXv1RTU1PnSdcRERHavXu3h6ryfrW1tZo2bZoGDhyoPn36SJKcTqf8/Pzq/HhuRESEnE6nNaa+tT7ZZzfLly/Xp59+qi1bttTpYz3PzDfffKPFixdrxowZ+q//+i9t2bJF9957r/z8/JScnGytR33r9fP1DA8Pd+v39fVVaGio7dZz9uzZcrlc6tmzp1q1aqWamho9+eSTSkpKkiTW8yw01to5nU7FxMTU2cfJvg4dOjRJ/d6OQIRmlZqaqh07duijjz7ydCkt1v79+zV16lRlZ2crICDA0+W0eLW1terfv7+eeuopSdLvf/977dixQxkZGUpOTvZwdS3P3//+dy1btkyvv/66evfurcLCQk2bNk1RUVGsJ7waX5k1UMeOHdWqVas6d+6UlJQoMjLSQ1V5t8mTJ2vNmjXasGGDzj//fKs9MjJSx48fV3l5udv4n69lZGRkvWt9ss9OCgoKVFpaqssuu0y+vr7y9fXVxo0btXDhQvn6+ioiIoL1PAOdOnVSbGysW1uvXr1UXFws6f+vx6/9XY+MjFRpaalb/4kTJ1RWVma79Zw1a5Zmz56tcePGqW/fvho/frymT5+utLQ0Sazn2WistePvf/0IRA3k5+enfv36KScnx2qrra1VTk6O4uLiPFiZ9zHGaPLkyVq1apXWr19f51Rtv3791Lp1a7e1LCoqUnFxsbWWcXFx+vzzz93+omdnZysoKKjOh9m5bujQofr8889VWFhobf3791dSUpL136zn6Rs4cGCdx0B8+eWX6tKliyQpJiZGkZGRbuvpcrmUn5/vtp7l5eUqKCiwxqxfv161tbUaMGBAM8zCe/zwww/y8XH/aGnVqpVqa2slsZ5no7HWLi4uTrm5uaqurrbGZGdnq0ePHrb9ukwSt92fjeXLlxt/f3+TmZlpvvjiCzNp0iQTEhLiducOjLn77rtNcHCw+eCDD8zBgwet7YcffrDG3HXXXaZz585m/fr1ZuvWrSYuLs7ExcVZ/SdvEx82bJgpLCw0WVlZ5rzzzrPlbeL1+fldZsawnmdi8+bNxtfX1zz55JNmz549ZtmyZaZNmzbmtddes8bMmzfPhISEmLfeests377dXH/99fXe6vz73//e5Ofnm48++sh0797dFreJ/1JycrL53e9+Z912v3LlStOxY0dz//33W2NYz1M7cuSI2bZtm9m2bZuRZObPn2+2bdtmvv32W2NM46xdeXm5iYiIMOPHjzc7duwwy5cvN23atOG2e08X0NK98MILpnPnzsbPz89cccUV5pNPPvF0SV5HUr3bkiVLrDE//vijueeee0yHDh1MmzZtzA033GAOHjzotp99+/aZESNGmMDAQNOxY0czc+ZMU11d3cyz8U6/DESs55l55513TJ8+fYy/v7/p2bOnefnll936a2trzcMPP2wiIiKMv7+/GTp0qCkqKnIb8+9//9vcfPPNpl27diYoKMhMmDDBHDlypDmn4RVcLpeZOnWq6dy5swkICDAXXHCBefDBB91u8WY9T23Dhg31/nuZnJxsjGm8tfvss8/MoEGDjL+/v/nd735n5s2b11xT9FoOY372+FAAAAAb4hoiAABgewQiAABgewQiAABgewQiAABgewQiAABgewQiAABgewQiAABgewQiAABgewQiAB53zTXXaNq0aWe9n9tvv12jR48+6/2gfr/8c+ratauef/55j9UDNCYCEdBCOJ1OTZkyRRdccIH8/f0VHR2tUaNGuf3QoyRt2rRJI0eOVIcOHRQQEKC+fftq/vz5qqmpscbs27dPKSkpiomJUWBgoLp166a//OUvOn78+K/W0LVrVzkcjjrbvHnzzmpuK1eu1OOPP35W+5CkBQsWKDMz86z3czo2bNiga6+9Vuedd54CAgLUrVs3/fnPf1Zubm6zHL+hNm7cqOjoaEk/BUiHw6G77rqrzrjU1FQ5HA7dfvvtVltj/TkB3ohABLQA+/btU79+/bR+/Xo988wz+vzzz5WVlaUhQ4YoNTXVGrdq1Sr94Q9/0Pnnn68NGzZo9+7dmjp1qp544gmNGzdOJ3+pZ/fu3aqtrdVLL72knTt36rnnnlNGRob+67/+6zdreeyxx3Tw4EG3bcqUKWc1v9DQULVv3/6s9iFJwcHBCgkJOev9/JYXX3xRQ4cOVVhYmN58800VFRVp1apVuuqqqzR9+vRTvq+mpsb61XdPeeuttzRq1CjrdXR0tJYvX64ff/zRajt27Jhef/11de7c2e29jfXnBHglD/+WGoDTMGLECPO73/3OVFZW1uk7fPiwMcaYyspKExYWZsaMGVNnzNtvv20kmeXLl5/yGOnp6SYmJuZX6+jSpYt57rnnTtl/8ocps7KyzKWXXmoCAgLMkCFDTElJiXn33XdNz549Tfv27c3NN99sjh49ar3vlz9Ou2jRInPhhRcaf39/Ex4ebsaOHWv1rVixwvTp08cEBASY0NBQM3ToUGtdkpOTzfXXX2+NPXbsmJkyZYo577zzjL+/vxk4cKDZvHlznXr/+c9/mn79+pnAwEATFxdndu/efco5fvvtt6Z169Zm+vTp9fbX1tZa/71kyRITHBxs3nrrLdOrVy/TqlUrs3fvXrN582YTHx9vwsLCTFBQkBk8eLApKChw248kk5GRYRITE01gYKDp2bOn2bRpk9mzZ4/5wx/+YNq0aWPi4uLMV199Zb2nsLDQXHPNNaZdu3amffv25rLLLjNbtmxx22+3bt3MunXr3NarT58+5rXXXrPGLFu2zFx88cXm+uuvt35U1Ji6f06//P/h8OHDJiUlxXTs2NG0b9/eDBkyxBQWFp5yLQFvwhkiwMuVlZUpKytLqampatu2bZ3+k2dE3n//ff373//WfffdV2fMqFGjdNFFF+mNN9445XEqKioUGhraKDU/8sgj+p//+R9t2rRJ+/fv15/+9Cc9//zzev3117V27Vq9//77euGFF+p979atW3XvvffqscceU1FRkbKysjR48GBJ0sGDB3XzzTfrjjvu0K5du/TBBx9ozJgx1pmvX7r//vv1j3/8Q0uXLtWnn36qCy+8UAkJCSorK3Mb9+CDD+rZZ5/V1q1b5evrqzvuuOOUc/vHP/6h6upq3X///fX2OxwOt9c//PCDnn76af2f//N/tHPnToWHh+vIkSNKTk7WRx99pE8++UTdu3fXyJEjdeTIEbf3Pv7447rttttUWFionj176pZbbtGdd96pOXPmaOvWrTLGaPLkydb4pKQknX/++dqyZYsKCgo0e/ZstW7d2urfuXOnSktL9cc//tHtOHfccYeWLFlivX711Vc1YcKEU67Bqdx0000qLS3VunXrVFBQoMsuu0xDhw6ts96AV/J0IgPw6/Lz840ks3Llyl8dN2/ePCPJOmP0S9ddd53p1atXvX179uwxQUFB5uWXX/7VY3Tp0sX4+fmZtm3bum25ubnGGPczLielpaUZSebrr7+22u68806TkJBgvf75mYd//OMfJigoyLhcrjrHLygoMJLMvn376q3v52eIKisrTevWrc2yZcus/uPHj5uoqCiTnp5+ynrXrl1rJJkff/yx3mPcddddJigoyK3t//7f/+u2Htu3bzfG/HSGSNJvniWpqakx7du3N++8847VJsk89NBD1uu8vDwjybzyyitW2xtvvGECAgKs1+3btzeZmZmnPM6TTz5pbrzxRuv1yfUqLS01/v7+Zt++fWbfvn0mICDAHDp06IzOEH344YcmKCjIHDt2zO2Y3bp1My+99NKvzh/wBpwhArycOcXZj8Ya//3332v48OG66aabNHHixN8cP2vWLBUWFrpt/fv3dxtz8cUXW/8dERGhNm3a6IILLnBrKy0trXf///Ef/6EuXbroggsu0Pjx47Vs2TL98MMPkqRLLrlEQ4cOVd++fXXTTTfpr3/9qw4fPlzvfr7++mtVV1dr4MCBVlvr1q11xRVXaNeuXaest1OnTpJ0yvqkumeBEhISVFhYqLVr1+ro0aNuF7D7+fm57V+SSkpKNHHiRHXv3l3BwcEKCgpSZWWliouLT1lXRESEJKlv375ubceOHZPL5ZIkzZgxQ//5n/+p+Ph4zZs3T19//bXb/t566y1dd911deZz3nnnKTExUZmZmVqyZIkSExPVsWPHU86/Pp999pkqKysVFhamdu3aWdvevXvr1AF4IwIR4OW6d+8uh8Oh3bt3/+q4iy66SJLqfNiftGvXLmvMSQcOHNCQIUN01VVX6eWXXz6tejp27KgLL7zQbQsMDHQb8/OvaRwOh9vrk22nuri4ffv2+vTTT/XGG2+oU6dOmjt3ri655BKVl5erVatWys7O1rp16xQbG6sXXnhBPXr00N69e0+r9lP5Zb2STllf9+7dVVFRIafTabW1a9dOF154obp06VJnfGBgYJ0AlZycrMLCQi1YsECbNm1SYWGhwsLC6tzlV19dv1brI488op07dyoxMVHr169XbGysVq1aJemnrxu3bdumxMTEeud1xx13KDMzU0uXLv3VrwxPpbKyUp06daoTlouKijRr1qwz3h/Q3AhEgJcLDQ1VQkKCFi1apKNHj9bpLy8vlyQNGzZMoaGhevbZZ+uMefvtt7Vnzx7dfPPNVtv333+va665Rv369dOSJUvk4+M9/xz4+voqPj5e6enp2r59u/bt26f169dL+ikEDBw4UI8++qi2bdsmPz8/60P/57p16yY/Pz99/PHHVlt1dbW2bNmi2NjYBtd24403qnXr1nr66acbvI+PP/5Y9957r0aOHKnevXvL399f//rXvxq8v5+76KKLNH36dL3//vsaM2aMdW3QO++8o6uuuuqU14kNHz5cx48fV3V1tRISEs74uJdddpmcTqd8fX3rBOYzPdsEeIKvpwsA8NsWLVqkgQMH6oorrtBjjz2miy++WCdOnFB2drYWL16sXbt2qW3btnrppZc0btw4TZo0SZMnT1ZQUJBycnI0a9Ys3XjjjfrTn/4k6f+HoS5duui///u/dejQIetYkZGRv1rLkSNH3M6OSFKbNm0UFBTUKHNds2aNvvnmGw0ePFgdOnTQu+++q9raWvXo0UP5+fnKycnRsGHDFB4ervz8fB06dEi9evWqs5+2bdvq7rvv1qxZsxQaGqrOnTsrPT1dP/zwg1JSUhpcX+fOnfXss89q6tSpKisr0+23366YmBiVlZXptddekyS1atXqV/fRvXt3/e///q/69+8vl8ulWbNm1TnLdqZ+/PFH6885JiZG3333nbZs2aKxY8dK+ikU1/d12UmtWrWyzi7+Vv31iY+PV1xcnEaPHq309HRddNFFOnDggNauXasbbrihzteqgLchEAEtwAUXXKBPP/1UTz75pGbOnKmDBw/qvPPOU79+/bR48WJr3I033qgNGzboySef1NVXX61jx46pe/fuevDBBzVt2jTrK5bs7Gx99dVX+uqrr3T++ee7Heu3rkGaO3eu5s6d69Z25513KiMjo1HmGhISopUrV+qRRx6x6n/jjTfUu3dv7dq1S7m5uXr++eflcrnUpUsXPfvssxoxYkS9+5o3b55qa2s1fvx4HTlyRP3799d7772nDh06nFWNU6ZMUa9evTR//nzdeOONcrlcCgsLU1xcnLKystyu86nPK6+8okmTJumyyy5TdHS0nnrqqXrvDjwTrVq10r///W/ddtttKikpUceOHTVmzBg9+uijOnr0qHJycn7zqdJnE2odDofeffddPfjgg5owYYIOHTqkyMhIDR482Lr+CfBmDnOmV2ACAFqUlStX6qGHHtIXX3zh6VIAr+U9Fw0AAJpEu3btzuqaJ8AOOEMEAABsjzNEAADA9ghEAADA9ghEAADA9ghEAADA9ghEAADA9ghEAADA9ghEAADA9ghEAADA9ghEAADA9v4fs2ff6VqZY+YAAAAASUVORK5CYII=\n" + }, + "metadata": {} + } + ], + "source": [ + "# 2.\n", + "mean_CO2 = vehicles[\"CO2 Emission Grams/Mile\"].mean()\n", + "print(\"Mean CO2 Emission Grams/Mile\", mean_CO2)\n", + "plt.hist(vehicles[\"CO2 Emission Grams/Mile\"], bins = 20)\n", + "plt.xlabel(\"CO2 Emission Grams/Mile\")\n", + "plt.ylabel(\"Frequency\")\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "mw5RWHRTJpae" + }, + "source": [ + "3. Combined MPG" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": { + "id": "Pfjfei86Jpae", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 466 + }, + "outputId": "f9fdff1c-3025-41a5-825a-22c8fa4525e6" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "mean MPG is 19.185435630689206\n" + ] + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": {} + } + ], + "source": [ + "# 3.\n", + "mean_MPG = vehicles[\"Combined MPG\"].mean()\n", + "print(\"mean MPG is\", mean_MPG)\n", + "plt.hist(vehicles[\"Combined MPG\"], bins = 40)\n", + "plt.xlabel(\"Combined MPG\")\n", + "plt.ylabel(\"Frequency\")\n", + "plt.show()\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "g1ltYltoJpae" + }, + "source": [ + "Which one(s) of the variables are nearly normally distributed? How do you know?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "gsBD-y_YJpae" + }, + "outputs": [], + "source": [ + "### they all assume a near bell shape, and by CLT the peak of the histogram will represent the mode of the distribution\n", + "### and also in a normal distribution, the mean is located at the center of the distribution, where they all tend too.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "qQSU8WyuJpae" + }, + "source": [ + "## Exponential Distribution" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "KGdScKijJpae" + }, + "source": [ + "1. Using `numpy.random.exponential`, create a function that returns a list of numbers exponentially distributed with the mean of 10.\n", + "\n", + "1. Use the function to generate two number sequences with a mean of 1 and 100 and a size of 1000.\n", + "\n", + "1. Plot the distributions as histograms with the number of bins as 100.\n", + "\n", + "Your output should look like below:\n", + "\n", + "![exponential distribution](ed.png)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "78ImJWX3Jpae" + }, + "outputs": [], + "source": [ + "#1.\n", + "import numpy as np\n", + "# random.exponential(scale=1.0, size=None)\n", + "\n", + "def expo_numb(mean, count):\n", + " return np.random.exponential(scale = mean, size = count)\n", + "\n", + "expo_numb(10, 200)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "r5C43lI6Jpaf" + }, + "source": [ + "How are the two distributions different?" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": { + "id": "TpPPzQpIJpaf" + }, + "outputs": [], + "source": [ + "# 2.\n", + "expo1 = expo_numb(1, 1000)\n", + "expo100 = expo_numb(100, 1000)" + ] + }, + { + "cell_type": "code", + "source": [ + "# 3.\n", + "plt.hist(expo1, bins = 100)\n", + "plt.xlabel(\"Mean\")\n", + "plt.ylabel(\"Count\")\n", + "plt.show()" + ], + "metadata": { + "id": "PZZ2StcFJ4yR" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "# 3. 1\n", + "plt.hist(expo100, bins = 100)\n", + "plt.xlabel(\"Mean\")\n", + "plt.ylabel(\"Count\")\n", + "plt.show()" + ], + "metadata": { + "id": "iJCLRd_EKOL_" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "# Both distributions follow the shape of an exponential distribution, so we will see in both a long tail do the right, as they are skewed to the right.\n", + "# maybe the key difference will be on the mean value and for larger samples a lot of the data will concentrate near the mean, much more clear to me\n", + "# in the next example:\n", + "expo1000 = expo_numb(100, 100000)\n", + "plt.hist(expo1000, bins = 100)\n", + "plt.xlabel(\"Mean\")\n", + "plt.ylabel(\"Count\")\n", + "plt.show()\n", + "\n", + "# or I might be doing something wrong" + ], + "metadata": { + "id": "wiXOgv2RLMh5" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "MTelBG6UJpaf" + }, + "source": [ + "## Exponential Distribution of Real Data\n", + "\n", + "Suppose that the amount of time one spends in a bank is exponentially distributed with mean as 10 minutes (i.e. λ = 1/10). What is the probability that a customer will spend less than fifteen minutes in the bank?\n", + "\n", + "Write a code in python to solve this problem" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": { + "id": "YQES3wTKJpaf", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "aba011c7-415d-45a8-a98d-80746ac03756" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Probability that a customer will spend less than fifteen minutes in the bank is 0.7534030360583935\n" + ] + } + ], + "source": [ + "from scipy.stats import expon\n", + "\n", + "lambda_inv = 10/1\n", + "\n", + "expon_dist = expon(scale = lambda_inv)\n", + "print(\"Probability that a customer will spend less than fifteen minutes in the bank is\", expon_dist.cdf(14))\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "czw1AALaJpaf" + }, + "source": [ + "What is the probability that the customer will spend more than 15 minutes" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "35jAtv7HJpaf", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "4cff7511-c9d4-44e6-c080-23a7b193b83d" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Probability that a customer will spend more than fifteen minutes in the bank is 0.2231301601484298\n" + ] + } + ], + "source": [ + "expon_dist = expon(scale = lambda_inv)\n", + "print(\"Probability that a customer will spend more than fifteen minutes in the bank is\", (1 - expon_dist.cdf(15)))\n" + ] + }, + { + "cell_type": "code", + "source": [ + "# Note to TA. Really sorry if this is a mess or a confusion. I will deliver like this, but not desregarding your work, just that I feel I have to move on to other labs." + ], + "metadata": { + "id": "-ZN_yzuJjBjQ" + }, + "execution_count": 44, + "outputs": [] + }, + { + "cell_type": "code", + "source": [], + "metadata": { + "id": "LbPx5RxcjH7x" + }, + "execution_count": null, + "outputs": [] + } + ], + "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" + }, + "colab": { + "provenance": [] + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} \ No newline at end of file diff --git a/lab_2_discrete.ipynb b/lab_2_discrete.ipynb new file mode 100644 index 0000000..c4cbe29 --- /dev/null +++ b/lab_2_discrete.ipynb @@ -0,0 +1,476 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "1Zmnm6U6D-xp" + }, + "source": [ + "# Before your start:\n", + "\n", + " Read the README.md file\n", + " Comment as much as you can and use the resources (README.md file)\n", + " Happy learning!\n", + "\n", + "*Notes:*\n", + "\n", + "- Solve the questions with python.\n", + "\n", + "- Round the final answer to three decimal places." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "3tXFgHBED-xs" + }, + "source": [ + "## Bernoulli's Distribution\n", + "\n", + "In a basket containing 100 fruits, there are 60 apples and 40 oranges.\n", + "\n", + "A fruit is picked randomly from the basket.\n", + "\n", + "1. **What is the probability that the fruit is apple?**\n", + "1. **What is the probability that it is an orange?**" + ] + }, + { + "cell_type": "code", + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import math\n", + "\n", + "from scipy.stats import bernoulli, binom, geom, poisson, uniform, expon, norm\n", + "import random" + ], + "metadata": { + "id": "eHRVp10kFMyQ" + }, + "execution_count": 1, + "outputs": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "6Yni2UM7D-xt" + }, + "outputs": [], + "source": [ + "# 1.\n", + "p = 60/100\n", + "print(\"Probability that the fruit is an apple is\", p )\n", + "\n", + "# Or.\n", + "p = 0.6\n", + "bernoulli_dist = bernoulli(p)\n", + "print(bernoulli_dist.pmf(1)) # winning -> getting apple\n", + "\n", + "# 2.\n", + "q = 40/100\n", + "print(\"Probability that the fruit is an orange is\", q )\n", + "\n", + "# Or.\n", + "p = 40/100\n", + "bernoulli_dist = bernoulli(p)\n", + "print(bernoulli_dist.pmf(1)) # winning -> getting orange" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "HEOQVZVBD-xu" + }, + "source": [ + "Now we take a random sample of 20 fruits from the basket. After each fruit is taken, a new fruit of the same type is replaced in the basket. Therefore, every time we are taking 1 fruit from 100 fruits.\n", + "\n", + "1. **What is the probability that the first 5 fruits are all apples?**\n", + "\n", + "1. **What is the probability that the first 5 fruits are all apples and the next 15 fruits are all oranges?**\n", + "\n", + "You can include the `p` and `q` probabilities you previous calculated in your solution." + ] + }, + { + "cell_type": "code", + "source": [ + "# 1. Clarify if sample is 20 ou 100\n", + "# So if the fruit is replaced (with the same kind) we will have to power the same probability times 5!\n", + "\n", + "p = 60/100\n", + "p_five_apples = p**5\n", + "rounded_p_five_apples = round(p**5, 3)*100\n", + "print(\"Probability that the first 5 fruits are all apples\", (p_five_apples))\n", + "print(\"Probability that the first 5 fruits are all apples\", rounded_p_five_apples,\"%\")\n" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "OkcAO8TtF9Xu", + "outputId": "10dc4f3d-6a5c-4bea-f78d-db9d2a138304" + }, + "execution_count": 4, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Probability that the first 5 fruits are all apples 0.07775999999999998\n", + "Probability that the first 5 fruits are all apples 7.8 %\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "# 2.\n", + "# Still the concept that the fruit is replaced!\n", + "\n", + "q = 40/100\n", + "q_fifteen_oranges = q**15\n", + "rounded_q_fifteen_oranges = round(q**15,3) * 100\n", + "\n", + "twenty_fruits = (p**5) * (q**15)\n", + "rounded_twenty_fruits = round((p**5) * (q**15), 8)*100\n", + "print(\"Probability that the first 5 fruits are all apples and the next 15 fruits are all oranges\",twenty_fruits)\n", + "print(\"Probability that the first 5 fruits are all apples and the next 15 fruits are all oranges\",rounded_twenty_fruits,\"%\")\n", + "# very unhappy with this very small value. But i think logic was fine :/" + ], + "metadata": { + "id": "smmnO19IJlbR", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "a7c5a51b-2ff8-4949-8d7a-673a12a5a625" + }, + "execution_count": 3, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Probability that the first 5 fruits are all apples and the next 15 fruits are all oranges 1.0995116277760013e-08\n", + "Probability that the first 5 fruits are all apples and the next 15 fruits are all oranges 1e-06 %\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "SVUHVFm2D-xv" + }, + "source": [ + "## Binomial Distribution\n", + "\n", + "Similar to the above problem, this time again we randomly sample 20 fruits.\n", + "\n", + "**What is the probability that this time the sample contains 5 apples and 15 oranges?**\n", + "\n", + "Please note that this time the order of the fruits being picked does not matter." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "k9kqWFjPD-xv", + "outputId": "48b19cbb-82a2-4c1d-b1b1-1aed60723b62" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "the probability of 5 apples and 15 oranges is 0.1611524643456288 %\n" + ] + } + ], + "source": [ + "# So this is valid for the scenario of 5 apples and 15 oranges, because if this is for exactly 5 apples, the rest are oranges!!! :)\n", + "p = 60/100\n", + "n = 20\n", + "\n", + "binomial_dist = binom(n,p)\n", + "p_5_apples = (binomial_dist.cdf(5))*100\n", + "print(\"the probability of 5 apples and 15 oranges is\",p_5_apples,\"%\")" + ] + }, + { + "cell_type": "code", + "source": [ + "binomial_dist = binom(n,p)\n", + "p_5_apples = (1 - binomial_dist.cdf(5))*100\n", + "print(\"probability of this case scenario does not happen\",p_5_apples,\"%\")" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "yOIK_NfwQA5u", + "outputId": "5deb4f66-fade-44bf-c139-4ced63ad9997" + }, + "execution_count": 16, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "probability of this case scenario does not happen 99.83884753565437 %\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "cxz9SblZD-xw" + }, + "source": [ + "In the lesson we also discussed CDF (cumulative distribution function). In the context of the above problem, **what is the probability that less than 5 fruits picked are apples?**\n", + "\n", + "Write the formula and calculate the probability below." + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "ySClOJh7D-xw", + "outputId": "01a62477-43d1-4e90-926c-66cde728854f" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "The probability that less than 5 fruits picked are apples 0.00031703112116863004\n", + "The probability that less than 5 fruits picked are apples 0.0 %\n" + ] + } + ], + "source": [ + "p = 60/100\n", + "n = 20\n", + "\n", + "binomial_dist = binom(n,p)\n", + "less_than_5_apples = binomial_dist.cdf(4) # <- Not sure about this, but if I would put five would be the cumulative until 5 apples, and I want less.\n", + " # like this? binomial_dist.pmf(0) + binomial_dist.pmf(1) + binomial_dist.pmf(2) + binomial_dist.pmf(3) + binomial_dist.pmf(4)\n", + "\n", + "rounded_less_than_5_apples = round(less_than_5_apples, 3)*100\n", + "print(\"The probability that less than 5 fruits picked are apples\", less_than_5_apples)\n", + "print(\"The probability that less than 5 fruits picked are apples\", rounded_less_than_5_apples,\"%\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "jDFsBxRdD-xx" + }, + "source": [ + "**Plot the PDF (probability distributiom function) for the above binomial distribution.**\n", + "\n", + "*Hint: The range of x in a binomial distribution is from `0` to `n`.*" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "id": "bNLkTwJND-xx", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 472 + }, + "outputId": "f91e0d4e-030e-4242-cc55-e0ab5e4a4528" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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M/bt21dmLDt27IBarcbrr7+uc+z9/PxgZWWFQ4cOAfh98vnevXtRXFxcYR/LU9fvox07dqB9+/Zo166dTh9fffVVAJD6SFRXmCARmYDbt28jJycHa9asQbNmzXReY8aMAQBkZ2cDAGbOnAkrKyv4+/ujTZs2mDRpEo4dO6bT3ueff47U1FS4urrC398fc+bM0Uliqqtly5alypo0aaIzT+a3337D7Nmz4erqCktLS9jb26NZs2bIyclBbm5uhW02adIEAErNvamMF198EQEBAThw4ECFdc+dO4e33noLarUaNjY2aNasGUaMGAEApeJ0cXFB48aNdcpeeOEFACg1t0o+vKdQKNC6detS9Z526dIl5ObmwsHBodTxf/DggXTsg4KCEBYWhqioKNjb22PAgAHYsGFDtebw1PX76NKlSzh37lyp/pX8Hkv6SFRXOAeJyARotVoAwIgRIzBq1Ci9dTp16gQAaN++PdLS0rB3717ExcXh73//O1auXInZs2cjKioKwJOzKy+99BK+++47/Otf/8LChQuxYMEC7Nq1C3369Kl2nGZmZnrLhRDSz5MnT8aGDRswbdo0BAYGQq1WQ6FQYOjQoVI/q9pmVbi6uiItLa3cOjk5OQgKCoKNjQ3mzp0LT09PqFQqJCcnY+bMmXrjrE1arRYODg7YsmWL3vUl88AUCgV27tyJEydOYM+ePfjxxx8xduxYLF68GCdOnICVlVWl91lT76Onz/49TaPR6BxbrVYLb29vLFmyRG99V1fXSsdOVCMMO8JHREJUPAfp8ePHwtraWgwbNqzKbRcWFop+/foJMzMz8dtvv+mtk5WVJZo3by569uxZbluLFi0qdw6Svvko8jkoarVajBkzRqfOb7/9JszMzHTqlfU7KZnLc+jQoXJjLYufn5944YUXyq1TMpfnyJEjOuVr1qwpte+goCDRoEED8eDBA526q1atEgBEQkKCTtyzZs3SqafVaoWzs7MICQmRyuRzkD744ANhZmamd15URbZs2SIAiLVr15ZbTz4nSK6676POnTuLAQMGlKrr6uqqs7++ffuK5s2b68w3IzIkDrERmQAzMzOEhYXh73//O1JTU0utf/qy97t37+qss7CwQIcOHSCEQHFxMTQaTakhIgcHB7i4uFQ4FFMyjPQsd9I2MzMrdfZn2bJlVb4MvyL6bgWwb98+JCUl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\n" + }, + "metadata": {} + } + ], + "source": [ + "# Plot the PMF for the above binomial distribution.\n", + "\n", + "X = np.arange(0, 21)\n", + "\n", + "plt.plot(X, binomial_dist.pmf(X), \"o\")\n", + "plt.title(\"Less than 5 apples issue\")\n", + "plt.xlabel(\"Number of Apples\")\n", + "plt.ylabel(\"Probability\")\n", + "plt.show()\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "BqvsBeN9D-xx" + }, + "source": [ + "## Poisson Distribution\n", + "\n", + "In this challenge you are required to use the Math library in python to solve the problems.\n", + "\n", + "In the UEFA champions league tournament, the average number of goals scored in a match is 2.3.\n", + "\n", + "**What is the probability that the number of goals scored in a match is 5?**\n", + "\n", + "*Hint: Use the exp() in the math library*\n", + "\n", + "And to calculate the factorial, you can use the following code:\n", + "\n", + "```python\n", + "import math\n", + "math.factorial(n) # n is the number you want to find the factorial of\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "llph4R3qD-xy", + "outputId": "0bb803ea-616d-4a8c-c94a-b3ca573b36f2" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "the probability of having exactly 5 goals is 5.4 %\n" + ] + } + ], + "source": [ + "mu = 2.3\n", + "poisson_dist = poisson(mu)\n", + "\n", + "# what is the probability of having exactly 5 goals?\n", + "five_goals_exactly = round(poisson_dist.pmf(5),3)*100\n", + "print(\"the probability of having exactly 5 goals is\",five_goals_exactly,\"%\")\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Q3mgsOfzD-xy" + }, + "source": [ + "**Draw a poisson probability distribution plot for the number of goals to be between 0 to 10.**" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 430 + }, + "id": "2k0TStI-D-xz", + "outputId": "71164c63-117c-43a7-9a9d-a5292686bc3c" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": {} + } + ], + "source": [ + "X = np.arange(0,11) # i think this is not inclusive, so range has to go until 11.\n", + "\n", + "plt.plot(X, poisson_dist.pmf(X), \"o\")\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "source": [ + "#cdf\n", + "plt.plot(X, poisson_dist.cdf(X), \"o\")\n", + "plt.show()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 430 + }, + "id": "SYVW4-FW4Zle", + "outputId": "22f433a3-0a53-4697-b4ae-6a13c8a16d86" + }, + "execution_count": 25, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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H9bjjz+uzZs36+2339Y555yjkpISdXd3j/5wzhhVUFDglJWV9b0PBoNOdna2U1VVZThVYuvo6HAkOa+//rr1KAmps7PTufDCC509e/Y43/72t51ly5ZZj5RQVq5c6Vx11VXWY4wJ119/vXPbbbeFLbvhhhucBQsWGE2UeCQ5u3bt6nsfCoWczMxM55FHHulb9vHHHzsej8f53e9+N+rzjMkjIz09Pdq3b5+Ki4v7liUlJam4uFh1dXWGkyU2v98vSUpLSzOeJDGVlZXp+uuvD/t3jZHz0ksvafbs2frBD36g9PR0XX755dq6dav1WAnpyiuvVG1trQ4dOiRJ+sc//qE333xT3/3ud40nS1wtLS1qa2sL+++Hz+dTYWFhVPaLcfGH8kba8ePHFQwGlZGREbY8IyNDBw4cMJoqsYVCIS1fvlxz5sxRfn6+9TgJZ8eOHWpoaNA777xjPUrCOnz4sKqrq1VeXq577rlH77zzjn7yk58oOTlZixcvth4voaxatUqBQEAXXXSR3G63gsGgHnzwQS1YsMB6tITV1tYmSQPuF3u/NprGZIwg+srKytTU1KQ333zTepSEc/ToUS1btkx79uyR1+u1HidhhUIhzZ49W+vWrZMkXX755WpqatLmzZuJkRH2/PPP67nnntP27dt1ySWXqLGxUcuXL1d2djafdYIak6dpJk6cKLfbrfb29rDl7e3tyszMNJoqcd1111364x//qNdee02TJ0+2Hifh7Nu3Tx0dHZo5c6bGjRuncePG6fXXX9fjjz+ucePGKRgMWo+YELKyspSXlxe27OKLL9aRI0eMJkpcP/vZz7Rq1SrdeOONuvTSS3XLLbdoxYoVqqqqsh4tYfXu+6z2i2MyRpKTkzVr1izV1tb2LQuFQqqtrVVRUZHhZInFcRzddddd2rVrl1599VXl5uZaj5SQrrnmGr377rtqbGzse82ePVsLFixQY2Oj3G639YgJYc6cOf1uTT906JC+/vWvG02UuD799FMlJYXvntxut0KhkNFEiS83N1eZmZlh+8VAIKC33347KvvFMXuapry8XIsXL9bs2bNVUFCgDRs2qKurS0uWLLEeLWGUlZVp+/bt+sMf/qCUlJS+844+n0/jx483ni5xpKSk9LsO55xzztH555/P9TkjaMWKFbryyiu1bt06/fCHP1R9fb22bNmiLVu2WI+WcEpLS/Xggw9qypQpuuSSS/T3v/9djz32mG677Tbr0eLaJ598ovfee6/vfUtLixobG5WWlqYpU6Zo+fLleuCBB3ThhRcqNzdXa9asUXZ2tubNmzf6w436/Tox7IknnnCmTJniJCcnOwUFBc5bb71lPVJCkTTg67e//a31aAmPW3tHx+7du538/HzH4/E4F110kbNlyxbrkRJSIBBwli1b5kyZMsXxer3OBRdc4Nx7773OyZMnrUeLa6+99tqA/01evHix4zinbu9ds2aNk5GR4Xg8Hueaa65xDh48GJXZXI7DI+0AAICdMXnNCAAAiB3ECAAAMEWMAAAAU8QIAAAwRYwAAABTxAgAADBFjAAAAFPECAAAMEWMAAAAU8QIAAAwRYwAAABTxAgAADD1/wCtBTci/qTnPwAAAABJRU5ErkJggg==\n" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "code", + "source": [], + "metadata": { + "id": "xLHemzQ04aGu" + }, + "execution_count": null, + "outputs": [] + } + ], + "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" + }, + "colab": { + "provenance": [] + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} \ No newline at end of file diff --git a/.gitignore b/your-code/.gitignore similarity index 100% rename from .gitignore rename to your-code/.gitignore diff --git a/README.md b/your-code/README.md similarity index 100% rename from README.md rename to your-code/README.md