{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "def normal_cdf(x, loc=0.0, scale=1.0):\n",
    "    \"\"\"\n",
    "    Compute the CDF of the normal distribution using only NumPy\n",
    "    (no SciPy, no math.erf).\n",
    "\n",
    "    Parameters\n",
    "    ----------\n",
    "    x : float or np.ndarray\n",
    "        Points at which to evaluate the CDF.\n",
    "    loc : float\n",
    "        Mean of the normal distribution.\n",
    "    scale : float\n",
    "        Standard deviation of the normal distribution.\n",
    "\n",
    "    Returns\n",
    "    -------\n",
    "    np.ndarray\n",
    "        The CDF values.\n",
    "    \"\"\"\n",
    "    # Standardize\n",
    "    z = (x - loc) / scale\n",
    "    t = 1.0 / (1.0 + 0.2316419 * np.abs(z))\n",
    "    \n",
    "    # Coefficients for the approximation\n",
    "    a1, a2, a3, a4, a5 = 0.319381530, -0.356563782, 1.781477937, -1.821255978, 1.330274429\n",
    "    poly = (((((a5 * t + a4) * t) + a3) * t + a2) * t + a1) * t\n",
    "    pdf = np.exp(-0.5 * z**2) / np.sqrt(2 * np.pi)\n",
    "    cdf = 1.0 - pdf * poly\n",
    "\n",
    "    # Use symmetry for negative z\n",
    "    cdf = np.where(z >= 0, cdf, 1.0 - cdf)\n",
    "    return cdf"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Task 1. Probing the Central Limit Theorem"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Starting with a Gaussian random distribution (`np.random.normal`), with `mean=0` and `std=1`, find out by brute force (i.e. use a Monte Carlo Method, i.e. generate 1000000 random numbers and test it) what the probability is that a number is between -1 and 1 (This should be approximately 68%)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Let's generate 1000000 random numbers from a normal distribution\n",
    "# with mean 0 and standard deviation 1\n",
    "sample = np.random.normal(loc=0, scale=1, size=1000000)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "To find the probability of having a number between -1 and 1\n",
    "we can write a boolean expression that checks if the number is\n",
    "between -1 and 1. This can be done using numpy's `np.logical_and`\n",
    "function. This function takes two boolean arrays and returns\n",
    "a new boolean array where the i-th element is True if both\n",
    "the i-th elements of the input arrays are True."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Probability of having a number between -1 and 1:  0.682442\n"
     ]
    }
   ],
   "source": [
    "mask = np.logical_and(sample > -1, sample < 1)\n",
    "\n",
    "# The probability of having a number between -1 and 1 is the\n",
    "# number of elements in the mask that are True divided by the\n",
    "# total number of elements in the sample.\n",
    "p = np.sum(mask == True) / len(sample)\n",
    "print(\"Probability of having a number between -1 and 1: \", p)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now create a low number N (start with 4) of such random samples. Repeat this `M=1000000` times (i.e. make a 2D array, let's call that x2DArray). Compute the mean (let's call that `xBarArray=np.mean(x2DArray,axis=0)`). Draw a histogram of the distribution of these means. Find the mean of these means (`np.mean(xBarArray)`) and the std. of these means. How does that compare to the expectation from the Central Limit Theorem? What is the probability P of one such mean (one such value in  xBarArray) to be within -1 to +1?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Now let's create a 2D array of random normal numbers\n",
    "# with 4 rows and 1000000 columns\n",
    "\n",
    "N = 4\n",
    "M = 1000000\n",
    "x2DArray = np.random.normal(loc=0, scale=1, size=(N, M))\n",
    "\n",
    "# To compute the mean along the rows we can use the np.mean:\n",
    "xBarArray = np.mean(x2DArray, axis=0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Now we can plot the histogram of the mean values\n",
    "plt.hist(xBarArray, bins=100)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Mean and std of the mean values\n",
    "\n",
    "mean_of_means = np.mean(xBarArray)\n",
    "std_of_means = np.std(xBarArray)\n",
    "\n",
    "print(\"Computed mean of the means: \", mean_of_means)\n",
    "print(\"Computed std of the means: \", std_of_means)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "According to the central limit theorem, the mean of the means\n",
    "should be equal to the mean of the original distribution and\n",
    "the standard deviation of the means should be equal to the\n",
    "standard deviation of the original distribution divided by\n",
    "the square root of the number of samples in the mean."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Computed mean of the means:  5.524546201806014e-05\n",
      "Computed std of the means:  0.49991035775852477\n",
      "Mean of the original distribution:  0.0010197289217202584\n",
      "Std of the original distribution:  1.0000385151308453\n",
      "Std of the means according to the CLT:  0.5000192575654226\n"
     ]
    }
   ],
   "source": [
    "print(\"Mean of the original distribution: \", np.mean(sample))\n",
    "print(\"Std of the original distribution: \", np.std(sample))\n",
    "print(\"Std of the means according to the CLT: \", np.std(sample) / np.sqrt(N))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Probability of having a mean between -1 and 1 for N = 4:  0.954465\n"
     ]
    }
   ],
   "source": [
    "# Probability of the means being between -1 and 1:\n",
    "mask = np.logical_and(xBarArray > -1, xBarArray < 1)\n",
    "p = np.sum(mask == True) / len(xBarArray)\n",
    "print(\"Probability of having a mean between -1 and 1 for N = 4: \", p)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now find that probability P as a function of N (from N=2 to N=100) and make a plot of P(N). Again compare this to what you expect from the Central Limit Theorem. Optional: plot a line on top with the expected analytic result. \n",
    "\n",
    "**Hint**: Analytical probability can be computed as follows:\n",
    "\n",
    "$$P(-1 < X < 1) = P(X < 1) - P(X < -1) = F(1) - F(-1)$$\n",
    "\n",
    "where $F$ is the cumulative distribution function of the normal distribution.\n",
    "According to the central limit theorem, the standard deviation in this case\n",
    "is $1/\\sqrt{N}$. $F$ can be computed using `normal_cdf` function with `loc=0` and `scale=1/np.sqrt(N)`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Now, let's compute the probability of having a mean between -1 and 1\n",
    "# as a function of the number of samples N. For each N from 2 to 100\n",
    "# we will (1) create the 2D array of random normal numbers, (2) compute\n",
    "# the mean along the rows, (3) compute the probability of having a mean\n",
    "# between -1 and 1.\n",
    "\n",
    "# Note: This may take about a minute to compute.\n",
    "\n",
    "N_range = np.arange(2, 101, 5) # N from 2 to 100 with step size 5\n",
    "p_values = []\n",
    "p_values_analytical = []\n",
    "for N in N_range:\n",
    "    x2DArray = np.random.normal(loc=0, scale=1, size=(N, M))\n",
    "    xBarArray = np.mean(x2DArray, axis=0)\n",
    "    mask = np.logical_and(xBarArray > -1, xBarArray < 1)\n",
    "    p = np.sum(mask == True) / len(xBarArray)\n",
    "    p_values.append(p)\n",
    "    p_values_analytical.append(\n",
    "        normal_cdf(1, loc=0, scale=1/np.sqrt(N)) - \n",
    "        normal_cdf(-1, loc=0, scale=1/np.sqrt(N))\n",
    "    )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Let's plot the probability of having a mean between -1 and 1\n",
    "# as a function of N.\n",
    "\n",
    "plt.plot(N_range, p_values, label='Computed')\n",
    "plt.plot(N_range, p_values_analytical, 'o', label='Analytical')\n",
    "plt.xlabel(\"N (number of samples in the mean)\")\n",
    "plt.ylabel(\"Probability of having a mean between -1 and 1\")\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now compute the std of each set of N numbers (i.e. take `xStdArray = np.std(x2DArray,axis=0)`), and find the mean of this std (`np.mean(xStdArray)` ). How does this compare to what you expect? Plot the result as a function of N (from N=2 to N=100). "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Now let's repeat the same trick with the standard deviation\n",
    "# and analyze how the standard deviation behaves as a function\n",
    "# of the number of samples N.\n",
    "N = 4\n",
    "M = 1000000\n",
    "x2DArray = np.random.normal(loc=0, scale=1, size=(N, M))\n",
    "\n",
    "# To compute the mean along the rows we can use the np.mean:\n",
    "xStdArray = np.std(x2DArray, axis=0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# First we can plot the histogram of the std values\n",
    "plt.hist(xStdArray, bins=100)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Computed mean of the std:  0.7976028259536635\n",
      "Computed std of the std:  0.3365396481662154\n"
     ]
    }
   ],
   "source": [
    "# Mean and std of the std values\n",
    "print(\"Computed mean of the std: \", np.mean(xStdArray))\n",
    "print(\"Computed std of the std: \", np.std(xStdArray))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Now we can study how the mean of the standard deviation\n",
    "# behaves as a function of the number of samples N.\n",
    "\n",
    "N_range = np.arange(2, 101, 5)\n",
    "mean_values_of_std = []\n",
    "for N in N_range:\n",
    "    x2DArray = np.random.normal(loc=0, scale=1, size=(N, M))\n",
    "    xStdArray = np.std(x2DArray, axis=0)\n",
    "    mean_values_of_std.append(np.mean(xStdArray))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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HgMPERGRrUgepTVx4kRkZ2dj3759cHNzw+bNm7Fy5Urcc889+OWXX2xRo93LvlEMvVEAAOq7M/AQERFZm+QWnm3btuHnn39GREQElEolmjRpgkceeQReXl6IjY1Fv379bFGnXSu7nFVP4wy1k+QMSkRERHch+dc1Pz8f/v7+AIB69eohMzMTABAWFobDhw9btzoHwctZREREtiU58LRq1QrJyckAgI4dO+Lzzz/HxYsXsXTpUgQFBVm9QEfADstERES2JfmS1oQJE3D58mUAwMyZM9G7d2988803UKvViIuLs3Z9DsEUeDgHDxERkU1IDjzPPvus6XmXLl1w4cIF/P333wgJCYGfn59Vi3MUnHSQiIjItiRf0po1axYKCgpMrzUaDTp37gx3d3fMmjXLqsU5Cl7SIiIisi3Jgefdd99FXl5eheUFBQV49913rVKUo2HgISIisi3JgafsJqG3OnbsGHx9fa1SlKNh4CEiIrIti/vw1KtXDwqFAgqFAi1btjQLPQaDAXl5eXjppZdsUqS9y+SwdCIiIpuyOPAsWrQIQgiMGjUK7777Lry9vU3r1Go1QkNDERUVZZMi7VmxwYhr+SX3I+MoLSIiItuwOPCMGDECANC0aVP06NEDTk5Vvu8olVMWdlRKBepp1DJXQ0REZJ8k9+Hx9PTEqVOnTK9//vlnDBw4EG+++WaFO6fT3ZX13/HzUEOprNg3ioiIiKpPcuB58cUXcfr0aQDA+fPnMWTIEGg0GqxZswZTpkyxeoH27mbg4eUsIiIiW5EceE6fPo1OnToBANasWYOePXvi22+/RVxcHH788Udr12f3OEKLiIjI9qo0LN1oNAIAfv/9d/Tt2xcAEBwcjKysLOtW5wBMI7TYwkNERGQzkgNPREQEZs+eja+//ho7duxAv379AAApKSkICAiweoH2ji08REREtic58CxatAiHDx/GK6+8grfeegstWrQAAPzwww/o3r271Qu0dww8REREtid5bHmHDh1w4sSJCsvff/99qFQqqxTlSBh4iIiIbM9qk+m4urpa61AOJYt9eIiIiGxO8iUtsi628BAREdkeA4+MbugMyC3SAwD8GHiIiIhshoFHRmWXs1yclPB04a06iIiIbKXKgUen0yE5ORl6vd6a9TiUK+UuZ5W/+zwRERFZl+TAU1BQgNGjR0Oj0aBdu3ZITU0FALz66quYN2+e1Qu0Z+y/Q0REVDMkB55p06bh2LFj2L59u9nIrOjoaMTHx1u1OHvHWZaJiIhqhuSOI+vWrUN8fDy6detmdhmmXbt2OHfunFWLs3ds4SEiIqoZklt4MjMz4e/vX2F5fn4++6FIZJqDh4GHiIjIpqp0L62NGzeaXpeFnC+//BJRUVHWq8wBsIWHiIioZki+pDV37lz06dMHSUlJ0Ov1WLx4MZKSkrBnzx7s2LHDFjXarbLA48c+PERERDYluYXnvvvuw9GjR6HX6xEWFoYtW7bA398fiYmJ6NKliy1qtFts4SEiIqoZVZrtrnnz5vjiiy+sXYtDEUJwlBYREVENqVLgMRqNOHv2LK5cuQKj0Wi27oEHHrBKYfZOW6iHTl9y7tjCQ0REZFuSA8/evXvxzDPP4MKFCxBCmK1TKBQwGAxWK86elV3O8nR1gquzSuZqiIiI7JvkwPPSSy+ZRmoFBQVxKHoVsf8OERFRzZEceM6cOYMffvgBLVq0sEU9DiOL/XeIiIhqjORRWpGRkTh79qwtanEobOEhIiKqORa18Bw/ftz0/NVXX8Vrr72G9PR0hIWFwdnZ2WzbDh06WLdCO1U2Qotz8BAREdmeRYGnU6dOUCgUZp2UR40aZXpeto6dli3HFh4iIqKaY1HgSUlJsXUdDoeBh4iIqOZYFHiaNGlier5z5050794dTk7mu+r1euzZs8dsW7o9Bh4iIqKaI7nT8kMPPYRr165VWJ6Tk4OHHnrIKkU5As6yTEREVHMkB56yvjq3unr1Ktzd3a1SlL0zGAWulgYef7bwEBER2ZzF8/AMGjQIQEkH5eeeew4uLjd/qA0GA44fP47u3btbv0I7dL1AB6MAFArA110tdzlERER2z+LA4+3tDaCkhcfT0xNubm6mdWq1Gt26dcPzzz9v/QrtUFn/nfruajipJDeyERERkUQWB54VK1YAAEJDQ/H666/z8lU1lAUezsFDRERUMyTfWmLmzJm2qMOhcIQWERFRzeL1FBlwhBYREVHNYuCRAVt4iIiIahYDjwwYeIiIiGqWRYHH19cXWVlZAEruoZWbm2vTouwdAw8REVHNsijw6HQ6aLVaAMDKlStRWFho06LsHfvwEBER1SyLRmlFRUVh4MCB6NKlC4QQGD9+vNk8POUtX77cqgXao6w8tvAQERHVJItaeFatWoW+ffsiLy8PCoUCOTk5uH79eqWPqliyZAlCQ0Ph6uqKyMhI7N+//7bbPvjgg1AoFBUe/fr1q9J717QivQHZBcUAGHiIiIhqikUtPAEBAZg3bx4AoGnTpvj6669Rv359qxQQHx+PyZMnY+nSpYiMjMSiRYsQExOD5ORk+Pv7V9h+7dq10Ol0ptdXr15Fx44d8a9//csq9dja1byS2p1VCni7OctcDRERkWOQPEorJSXFamEHABYuXIjnn38eI0eORNu2bbF06VJoNJrbXhrz9fVFYGCg6bF161ZoNJo6E3jKz7Jc2U1YiYiIyPqqNCx9x44d6N+/P1q0aIEWLVpgwIAB+PPPPyUfR6fT4dChQ4iOjr5ZkFKJ6OhoJCYmWnSMr776Ck8//fRtb3VRVFQErVZr9pATR2gRERHVPMmBZ9WqVYiOjoZGo8H48eNNHZh79eqFb7/9VtKxsrKyYDAYEBAQYLY8ICAA6enpd91///79+OuvvzBmzJjbbhMbGwtvb2/TIzg4WFKN1sYRWkRERDVP8r205syZgwULFmDSpEmmZePHj8fChQvx3nvv4ZlnnrFqgXfy1VdfISwsDF27dr3tNtOmTcPkyZNNr7Varayhhy08RERENU9yC8/58+fRv3//CssHDBiAlJQUScfy8/ODSqVCRkaG2fKMjAwEBgbecd/8/HysXr0ao0ePvuN2Li4u8PLyMnvIiYGHiIio5kkOPMHBwUhISKiw/Pfff5fccqJWq9GlSxez4xmNRiQkJCAqKuqO+65ZswZFRUV49tlnJb2n3DgHDxERUc2TfEnrtddew/jx43H06FF0794dALB7927ExcVh8eLFkguYPHkyRowYgYiICHTt2hWLFi1Cfn4+Ro4cCQAYPnw4GjVqhNjYWLP9vvrqKwwcONCqI8ZqgqmFh314iIiIaozkwDN27FgEBgbiww8/xPfffw8AaNOmDeLj4/H4449LLmDIkCHIzMzEjBkzkJ6ejk6dOmHz5s2mjsypqalQKs0bopKTk7Fr1y5s2bJF8vvJrazTsh9beIiIiGqMQggh5C6iJmm1Wnh7eyMnJ0eW/jxtZ2xGgc6A7a8/iFC/yofSExERkbnq/n5XaR4eqpr8Ij0KdAYA7MNDRERUkxh4alBZ/x2NWgV3F8lXE4mIiKiKGHhqUCZHaBEREcmCgacGcYQWERGRPBh4ahDn4CEiIpKH5I4kBoMBcXFxSEhIwJUrV2A0Gs3Wb9u2zWrF2RvOskxERCQPyYFnwoQJiIuLQ79+/dC+fXsoFApb1GWXygKPHy9pERER1SjJgWf16tX4/vvv0bdvX1vUY9fYwkNERCQPyX141Go1WrRoYYta7J5plBZbeIiIiGqU5MDz2muvYfHixXCwCZqtgi08RERE8pB8SWvXrl34448/sGnTJrRr1w7Ozs5m69euXWu14uyJ0Sg4SouIiEgmkgOPj48PnnjiCVvUYtdybhSj2FDSKlbfQy1zNURERI5FcuBZsWKFLeqwe2WtOz4aZ7g4qWSuhoiIyLFw4sEawlmWiYiI5FOlO1j+8MMP+P7775GamgqdTme27vDhw1YpzN7wPlpERETykdzC8/HHH2PkyJEICAjAkSNH0LVrV9SvXx/nz59Hnz59bFGjXeCkg0RERPKRHHg+++wzLFu2DJ988gnUajWmTJmCrVu3Yvz48cjJybFFjXaBQ9KJiIjkIznwpKamonv37gAANzc35ObmAgD+/e9/47vvvrNudXaEgYeIiEg+kgNPYGAgrl27BgAICQnB3r17AQApKSmcjPAOOMsyERGRfCQHnocffhi//PILAGDkyJGYNGkSHnnkEQwZMoTz89wBW3iIiIjkI3mU1rJly2A0GgEA48aNQ/369bFnzx4MGDAAL774otULtBcMPERERPKRHHiUSiWUypsNQ08//TSefvppqxZlb/QGI64VlAzfZ+AhIiKqeVWaePDPP//Es88+i6ioKFy8eBEA8PXXX2PXrl1WLc5eXMvXQQhApVSgnoa3lSAiIqppkgPPjz/+iJiYGLi5ueHIkSMoKiq5VJOTk4O5c+davUB7cKX0cpavuxoqpULmaoiIiByP5MAze/ZsLF26FF988YXZndJ79OjBWZZvgyO0iIiI5CU58CQnJ+OBBx6osNzb2xvZ2dnWqMnusMMyERGRvKo0D8/Zs2crLN+1axeaNWtmlaLsDQMPERGRvCQHnueffx4TJkzAvn37oFAocOnSJXzzzTd4/fXXMXbsWFvUWOcx8BAREclL8rD0qVOnwmg0olevXigoKMADDzwAFxcXvP7663j11VdtUWOdxz48RERE8pIceBQKBd566y385z//wdmzZ5GXl4e2bdvCw8PDFvXZhSy28BAREclKcuApo1ar0bZtW2vWYrdMLTwMPERERLKwOPCMGjXKou2WL19e5WLsVVkfHj9e0iIiIpKFxYEnLi4OTZo0QXh4OO+KLkFhsQG5hXoAbOEhIiKSi8WBZ+zYsfjuu++QkpKCkSNH4tlnn4Wvr68ta7MLZa07aiclvFyrfAWRiIiIqsHiYelLlizB5cuXMWXKFKxfvx7BwcEYPHgwfvvtN7b43EH5EVoKBW8rQUREJAdJ8/C4uLhg6NCh2Lp1K5KSktCuXTu8/PLLCA0NRV5enq1qrNM4Bw8REZH8qnS3dABQKpVQKBQQQsBgMFizJrvCwENERCQ/SYGnqKgI3333HR555BG0bNkSJ06cwKefforU1FTOw3MbWRySTkREJDuLe9G+/PLLWL16NYKDgzFq1Ch899138PPzs2VtdsHUwsMh6URERLKxOPAsXboUISEhaNasGXbs2IEdO3ZUut3atWutVpw9MM3BwxYeIiIi2VgceIYPH85RRlXA+2gRERHJT9LEgyQdOy0TERHJr8qjtOjuhBCmwOPPwENERCQbBh4byi3So0hvBMD7aBEREcmJgceGylp3PF2c4KZWyVwNERGR42LgsaEs9t8hIiKqFRh4bKhshBaHpBMREcmLgceGOEKLiIiodmDgsSHOskxERFQ7MPDYEFt4iIiIagcGHhviLMtERES1AwOPDbGFh4iIqHZg4LEhBh4iIqLagYHHRoxGgav5OgAMPERERHJj4LGR6wU6GIwCCgXg666WuxwiIiKHxsBjI2Udln01ajireJqJiIjkxF9iGynrv8ObhhIREcmPgcdG2GGZiIio9mDgsREGHiIiotqDgcdGGHiIiIhqDwYeG+Esy0RERLUHA4+NsIWHiIio9mDgsZGsPAYeIiKi2oKBx0bYwkNERFR7MPDYgE5vxPWCYgCch4eIiKg2YOCxgav5Ja07TkoFfNycZa6GiIiIGHhsoPwsy0qlQuZqiIiIiIHHBth/h4iIqHaRPfAsWbIEoaGhcHV1RWRkJPbv33/H7bOzszFu3DgEBQXBxcUFLVu2xK+//lpD1VqGgYeIiKh2cZLzzePj4zF58mQsXboUkZGRWLRoEWJiYpCcnAx/f/8K2+t0OjzyyCPw9/fHDz/8gEaNGuHChQvw8fGp+eLvwBR42GGZiIioVpA18CxcuBDPP/88Ro4cCQBYunQpNm7ciOXLl2Pq1KkVtl++fDmuXbuGPXv2wNm5pDNwaGjoHd+jqKgIRUVFptdardZ6H+A2OAcPERFR7SLbJS2dTodDhw4hOjr6ZjFKJaKjo5GYmFjpPr/88guioqIwbtw4BAQEoH379pg7dy4MBsNt3yc2Nhbe3t6mR3BwsNU/y60yGXiIiIhqFdkCT1ZWFgwGAwICAsyWBwQEID09vdJ9zp8/jx9++AEGgwG//vor3n77bXz44YeYPXv2bd9n2rRpyMnJMT3S0tKs+jkqU36UFhEREclP1ktaUhmNRvj7+2PZsmVQqVTo0qULLl68iPfffx8zZ86sdB8XFxe4uNRs8GCnZSIiotpFtsDj5+cHlUqFjIwMs+UZGRkIDAysdJ+goCA4OztDpVKZlrVp0wbp6enQ6XRQq9U2rdlSDDxERES1i2yXtNRqNbp06YKEhATTMqPRiISEBERFRVW6T48ePXD27FkYjUbTstOnTyMoKKjWhJ38Ij3ydSV9ihh4iIiIagdZ5+GZPHkyvvjiC6xcuRKnTp3C2LFjkZ+fbxq1NXz4cEybNs20/dixY3Ht2jVMmDABp0+fxsaNGzF37lyMGzdOro9QQdkILTdnFdzVqrtsTURERDVB1j48Q4YMQWZmJmbMmIH09HR06tQJmzdvNnVkTk1NhVJ5M5MFBwfjt99+w6RJk9ChQwc0atQIEyZMwBtvvCHXR6ig/OUshYK3lSAiIqoNFEIIIXcRNUmr1cLb2xs5OTnw8vKy+vE3/3UZL606jC5N6uHHsd2tfnwiIiJHVN3fb9lvLWFvOMsyERFR7cPAY2UcoUVERFT7MPBYWdksy5x0kIiIqPZg4LEytvAQERHVPgw8VsbAQ0REVPsw8FgZAw8REVHtw8BjRUIIZOXpADDwEBER1SYMPFakvaGHzlBy2ws/j9pxqwsiIiJi4LGqzLxCAIC3mzNcnHhbCSIiotqCgceKrrD/DhERUa3EwGNFZR2WeTmLiIiodmHgsaKbI7RcZa6EiIiIymPgsaKyWZZ5Hy0iIqLahYHHijgHDxERUe3EwGNFDDxERES1EwOPFXHSQSIiotqJgceKTC087MNDRERUqzDwWInBKHAtn5e0iIiIaiMGHiu5ml8EowCUCsDXnfPwEBER1SYMPFZSdjnL190FKqVC5mqIiIioPAYeK8kr1MPT1YmXs4iIiGohJ7kLsBeRzerjxDsxKC69WzoRERHVHmzhsTJnFU8pERFRbcNfZyIiIrJ7DDxERERk9xh4iIiIyO4x8BAREZHdY+AhIiIiu8fAQ0RERHaPgYeIiIjsHgMPERER2T0GHiIiIrJ7DDxERERk9xh4iIiIyO4x8BAREZHdY+AhIiIiu+ckdwE1TQgBANBqtTJXQkRERJYq+90u+x2XyuECT25uLgAgODhY5kqIiIhIqtzcXHh7e0veTyGqGpXqKKPRiEuXLsHT0xMKhcKifbRaLYKDg5GWlgYvLy8bV0jl8dzLh+dePjz38uG5l8/dzr0QArm5uWjYsCGUSuk9chyuhUepVKJx48ZV2tfLy4v/AciE514+PPfy4bmXD8+9fO507qvSslOGnZaJiIjI7jHwEBERkd1j4LGAi4sLZs6cCRcXF7lLcTg89/LhuZcPz718eO7lY+tz73CdlomIiMjxsIWHiIiI7B4DDxEREdk9Bh4iIiKyeww8REREZPcYeCywZMkShIaGwtXVFZGRkdi/f7/cJdmd2NhY3HvvvfD09IS/vz8GDhyI5ORks20KCwsxbtw41K9fHx4eHnjyySeRkZEhU8X2ad68eVAoFJg4caJpGc+77Vy8eBHPPvss6tevDzc3N4SFheHgwYOm9UIIzJgxA0FBQXBzc0N0dDTOnDkjY8X2wWAw4O2330bTpk3h5uaG5s2b47333jO7RxPPvXXs3LkT/fv3R8OGDaFQKLBu3Tqz9Zac52vXrmHYsGHw8vKCj48PRo8ejby8PMm1MPDcRXx8PCZPnoyZM2fi8OHD6NixI2JiYnDlyhW5S7MrO3bswLhx47B3715s3boVxcXFePTRR5Gfn2/aZtKkSVi/fj3WrFmDHTt24NKlSxg0aJCMVduXAwcO4PPPP0eHDh3MlvO828b169fRo0cPODs7Y9OmTUhKSsKHH36IevXqmbZZsGABPv74YyxduhT79u2Du7s7YmJiUFhYKGPldd/8+fPx3//+F59++ilOnTqF+fPnY8GCBfjkk09M2/DcW0d+fj46duyIJUuWVLrekvM8bNgwnDx5Elu3bsWGDRuwc+dOvPDCC9KLEXRHXbt2FePGjTO9NhgMomHDhiI2NlbGquzflStXBACxY8cOIYQQ2dnZwtnZWaxZs8a0zalTpwQAkZiYKFeZdiM3N1fcc889YuvWraJnz55iwoQJQgied1t64403xH333Xfb9UajUQQGBor333/ftCw7O1u4uLiI7777riZKtFv9+vUTo0aNMls2aNAgMWzYMCEEz72tABA//fST6bUl5zkpKUkAEAcOHDBts2nTJqFQKMTFixclvT9beO5Ap9Ph0KFDiI6ONi1TKpWIjo5GYmKijJXZv5ycHACAr68vAODQoUMoLi42+y5at26NkJAQfhdWMG7cOPTr18/s/AI877b0yy+/ICIiAv/617/g7++P8PBwfPHFF6b1KSkpSE9PNzv33t7eiIyM5Lmvpu7duyMhIQGnT58GABw7dgy7du1Cnz59APDc1xRLznNiYiJ8fHwQERFh2iY6OhpKpRL79u2T9H4Od/NQKbKysmAwGBAQEGC2PCAgAH///bdMVdk/o9GIiRMnokePHmjfvj0AID09HWq1Gj4+PmbbBgQEID09XYYq7cfq1atx+PBhHDhwoMI6nnfbOX/+PP773/9i8uTJePPNN3HgwAGMHz8earUaI0aMMJ3fyv73h+e+eqZOnQqtVovWrVtDpVLBYDBgzpw5GDZsGADw3NcQS85zeno6/P39zdY7OTnB19dX8nfBwEO1zrhx4/DXX39h165dcpdi99LS0jBhwgRs3boVrq6ucpfjUIxGIyIiIjB37lwAQHh4OP766y8sXboUI0aMkLk6+/b999/jm2++wbfffot27drh6NGjmDhxIho2bMhzb8d4SesO/Pz8oFKpKoxIycjIQGBgoExV2bdXXnkFGzZswB9//IHGjRublgcGBkKn0yE7O9tse34X1XPo0CFcuXIFnTt3hpOTE5ycnLBjxw58/PHHcHJyQkBAAM+7jQQFBaFt27Zmy9q0aYPU1FQAMJ1f/u+P9f3nP//B1KlT8fTTTyMsLAz//ve/MWnSJMTGxgLgua8plpznwMDACoOE9Ho9rl27Jvm7YOC5A7VajS5duiAhIcG0zGg0IiEhAVFRUTJWZn+EEHjllVfw008/Ydu2bWjatKnZ+i5dusDZ2dnsu0hOTkZqaiq/i2ro1asXTpw4gaNHj5oeERERGDZsmOk5z7tt9OjRo8LUC6dPn0aTJk0AAE2bNkVgYKDZuddqtdi3bx/PfTUVFBRAqTT/+VOpVDAajQB47muKJec5KioK2dnZOHTokGmbbdu2wWg0IjIyUtobVqvLtQNYvXq1cHFxEXFxcSIpKUm88MILwsfHR6Snp8tdml0ZO3as8Pb2Ftu3bxeXL182PQoKCkzbvPTSSyIkJERs27ZNHDx4UERFRYmoqCgZq7ZP5UdpCcHzbiv79+8XTk5OYs6cOeLMmTPim2++ERqNRqxatcq0zbx584SPj4/4+eefxfHjx8Xjjz8umjZtKm7cuCFj5XXfiBEjRKNGjcSGDRtESkqKWLt2rfDz8xNTpkwxbcNzbx25ubniyJEj4siRIwKAWLhwoThy5Ii4cOGCEMKy89y7d28RHh4u9u3bJ3bt2iXuueceMXToUMm1MPBY4JNPPhEhISFCrVaLrl27ir1798pdkt0BUOljxYoVpm1u3LghXn75ZVGvXj2h0WjEE088IS5fvixf0Xbq1sDD824769evF+3btxcuLi6idevWYtmyZWbrjUajePvtt0VAQIBwcXERvXr1EsnJyTJVaz+0Wq2YMGGCCAkJEa6urqJZs2birbfeEkVFRaZteO6t448//qj0f9tHjBghhLDsPF+9elUMHTpUeHh4CC8vLzFy5EiRm5sruRaFEOWmliQiIiKyQ+zDQ0RERHaPgYeIiIjsHgMPERER2T0GHiIiIrJ7DDxERERk9xh4iIiIyO4x8BAREZHdY+AhIiIiu8fAQ2ShhIQEtGnTBgaDQe5S8M4776BTp05yl2Fm2bJlCA4OhlKpxKJFi+QuRxKFQoF169bZ5Nj//PMPFAoFjh49avVjP/fccxg4cKDVj1ubTZ06Fa+++qrcZVAdxMBDDuO5556DQqHAvHnzzJavW7cOCoXirvtPmTIF06dPh0qlslWJdZZWq8Urr7yCN954AxcvXsQLL7wgd0m1RnBwMC5fvoz27dtX+Ri2DE11zeuvv46VK1fi/PnzcpdCdQwDDzkUV1dXzJ8/H9evX5e0365du3Du3Dk8+eSTNqqsdiguLq7SfqmpqSguLka/fv0QFBQEjUZj5crqLpVKhcDAQDg5Ocldil3w8/NDTEwM/vvf/8pdCtUxDDzkUKKjoxEYGIjY2FhJ+61evRqPPPIIXF1dTcvKLit9/fXXCA0Nhbe3N55++mnk5uaatgkNDa1weadTp0545513TK8VCgU+//xzPPbYY9BoNGjTpg0SExNx9uxZPPjgg3B3d0f37t1x7ty5CnV9/vnnCA4OhkajweDBg5GTk2O2/ssvv0SbNm3g6uqK1q1b47PPPjOtK2s1iI+PR8+ePeHq6opvvvmm0s+fmpqKxx9/HB4eHvDy8sLgwYORkZEBAIiLi0NYWBgAoFmzZlAoFPjnn38qHEOn0+GVV15BUFAQXF1d0aRJE7PvYeHChQgLC4O7uzuCg4Px8ssvIy8vz7Q+Li4OPj4+2LBhA1q1agWNRoOnnnoKBQUFWLlyJUJDQ1GvXj2MHz/e7LJjaGgo3nvvPQwdOhTu7u5o1KgRlixZUunnLJOWlobBgwfDx8cHvr6+ePzxx80+0/bt29G1a1e4u7vDx8cHPXr0wIULFyo91q2tM9u3b4dCoUBCQgIiIiKg0WjQvXt3JCcn37aepk2bAgDCw8OhUCjw4IMPmq3/4IMPEBQUhPr162PcuHFmwbWoqAivv/46GjVqBHd3d0RGRmL79u13/PxV/Tf5888/o3PnznB1dUWzZs3w7rvvQq/Xm9Zb+h3/9ttvaNOmDTw8PNC7d29cvnzZ7H369++P1atX3/EzEFVQ/XuhEtUNI0aMEI8//rhYu3atcHV1FWlpaUIIIX766Sdxt/8UOnToIObNm2e2bObMmcLDw0MMGjRInDhxQuzcuVMEBgaKN99807RNkyZNxEcffWS2X8eOHcXMmTNNrwGIRo0aifj4eJGcnCwGDhwoQkNDxcMPPyw2b94skpKSRLdu3UTv3r3N3tvd3V08/PDD4siRI2LHjh2iRYsW4plnnjFts2rVKhEUFCR+/PFHcf78efHjjz8KX19fERcXJ4QQIiUlRQAQoaGhpm0uXbpU4bMbDAbRqVMncd9994mDBw+KvXv3ii5duoiePXsKIYQoKCgQv//+uwAg9u/fLy5fviz0en2F47z//vsiODhY7Ny5U/zzzz/izz//FN9++61p/UcffSS2bdsmUlJSREJCgmjVqpUYO3asaf2KFSuEs7OzeOSRR8Thw4fFjh07RP369cWjjz4qBg8eLE6ePCnWr18v1Gq1WL16tdl34OnpKWJjY0VycrL4+OOPhUqlElu2bDH7Dn766SchhBA6nU60adNGjBo1Shw/flwkJSWJZ555RrRq1UoUFRWJ4uJi4e3tLV5//XVx9uxZkZSUJOLi4sSFCxcqfOby5/nIkSNCiJt3j46MjBTbt28XJ0+eFPfff7/o3r17pfsLIcT+/fsFAPH777+Ly5cvi6tXrwohSv5Ne3l5iZdeekmcOnVKrF+/Xmg0GrO7ro8ZM0Z0795d7Ny5U5w9e1a8//77wsXFRZw+ffq271eVf5M7d+4UXl5eIi4uTpw7d05s2bJFhIaGinfeeUfydxwdHS0OHDggDh06JNq0aWP271oIIU6dOiUAiJSUlNt+BqJbMfCQwygLPEII0a1bNzFq1CghhGWBx9vbW/zf//2f2bKZM2cKjUYjtFqtadl//vMfERkZaXptaeCZPn266XViYqIAIL766ivTsu+++064urqavbdKpRL/+9//TMs2bdoklEqluHz5shBCiObNm5sFCiGEeO+990RUVJQQ4uYP8aJFi+742bds2SJUKpVITU01LTt58qQp4AghxJEjR+76A/Tqq6+Khx9+WBiNxju+X5k1a9aI+vXrm16vWLFCABBnz541LXvxxReFRqMRubm5pmUxMTHixRdfNL1u0qSJ2Q+zEEIMGTJE9OnTx/S6fOD5+uuvRatWrczqLCoqEm5ubuK3334TV69eFQDE9u3bLfoctws8v//+u2mbjRs3CgDixo0bFh2jzIgRI0STJk3MAua//vUvMWTIECGEEBcuXBAqlUpcvHjRbL9evXqJadOm3bbmqvyb7NWrl5g7d67Zcb7++msRFBR02/ex5DtesmSJCAgIMNsvJydH0ndAJIQQvKRFDmn+/PlYuXIlTp06ZdH2N27cMLucVSY0NBSenp6m10FBQbhy5Yrkejp06GB6HhAQAACmy0RlywoLC6HVak3LQkJC0KhRI9PrqKgoGI1GJCcnIz8/H+fOncPo0aPh4eFhesyePbvCZYiIiIg71nbq1CkEBwcjODjYtKxt27bw8fGx+PwBJZ3Gjx49ilatWmH8+PHYsmWL2frff/8dvXr1QqNGjeDp6Yl///vfuHr1KgoKCkzbaDQaNG/e3Oy8hIaGwsPDw2zZrd9BVFRUhde3q/3YsWM4e/YsPD09TefN19cXhYWFOHfuHHx9ffHcc88hJiYG/fv3x+LFiytccrFE+e88KCgIAKr0b6ddu3ZmHenL/xs8ceIEDAYDWrZsafbvYMeOHZVeIr1dfZb8mzx27BhmzZpl9j7PP/88Ll++bPoOq/IdV/bflJubGwCY7Ud0N+xFRw7pgQceQExMDKZNm4bnnnvurtv7+flV2tHZ2dnZ7LVCoYDRaDS9ViqVEEKYbVNZx+DyxykbMVbZsvLHvpOyfhFffPEFIiMjzdbdOsrM3d3domNWV+fOnZGSkoJNmzbh999/x+DBgxEdHY0ffvgB//zzDx577DGMHTsWc+bMga+vL3bt2oXRo0dDp9OZOkFXdr7v9h1IlZeXhy5dulTan6lBgwYAgBUrVmD8+PHYvHkz4uPjMX36dGzduhXdunWz+H2q8/3e7jhlxyo7Tl5eHlQqFQ4dOlThey8fEi2t70415+Xl4d1338WgQYMqHMvV1bVa3/Gt/w1du3YNwM3vg8gSDDzksObNm4dOnTqhVatWd902PDwcSUlJkt+jQYMGZv/vX6vVIiUlRfJxKpOamopLly6hYcOGAIC9e/dCqVSiVatWCAgIQMOGDXH+/HkMGzasWu/Tpk0bpKWlIS0tzdTKk5SUhOzsbLRt21bSsby8vDBkyBAMGTIETz31FHr37o1r167h0KFDMBqN+PDDD6FUljQ8f//999Wqu7y9e/dWeN2mTZtKt+3cuTPi4+Ph7+8PLy+v2x4zPDwc4eHhmDZtGqKiovDtt99KCjxSqNVqAJA8B1R4eDgMBgOuXLmC+++/3xalmXTu3BnJyclo0aJFpeut+R3/9ddfcHZ2Rrt27apcLzkeBh5yWGFhYRg2bBg+/vjju24bExODlStXSn6Phx9+GHFxcejfvz98fHwwY8YMq83j4+rqihEjRuCDDz6AVqvF+PHjMXjwYAQGBgIA3n33XYwfPx7e3t7o3bs3ioqKcPDgQVy/fh2TJ0+2+H2io6NN52rRokXQ6/V4+eWX0bNnz7teDitv4cKFCAoKQnh4OJRKJdasWYPAwED4+PigRYsWKC4uxieffIL+/ftj9+7dWLp0qeRzcju7d+/GggULMHDgQGzduhVr1qzBxo0bK9122LBheP/99/H4449j1qxZaNy4MS5cuIC1a9diypQpKC4uxrJlyzBgwAA0bNgQycnJOHPmDIYPH261em/l7+8PNzc3bN68GY0bN4arqyu8vb3vul/Lli0xbNgwDB8+HB9++CHCw8ORmZmJhIQEdOjQAf369bNajTNmzMBjjz2GkJAQPPXUU1AqlTh27Bj++usvzJ4926rf8Z9//on777/fdGmLyBLsw0MObdasWRZdRhg2bBhOnjx5x6HDlZk2bRp69uyJxx57DP369cPAgQPN+idUR4sWLTBo0CD07dsXjz76KDp06GA27HzMmDH48ssvsWLFCoSFhaFnz56Ii4szDXG2lEKhwM8//4x69erhgQceQHR0NJo1a4b4+HhJx/H09MSCBQsQERGBe++9F//88w9+/fVXKJVKdOzYEQsXLsT8+fPRvn17fPPNN5KnDriT1157DQcPHkR4eDhmz56NhQsXIiYmptJtNRoNdu7ciZCQEAwaNAht2rTB6NGjUVhYCC8vL2g0Gvz999948skn0bJlS7zwwgsYN24cXnzxRavVeysnJyd8/PHH+Pzzz9GwYUM8/vjjFu+7YsUKDB8+HK+99hpatWqFgQMH4sCBAwgJCbFqjTExMdiwYQO2bNmCe++9F926dcNHH32EJk2aAIBVv+PVq1fj+eeft2b55AAU4taLo0RUqf/85z/QarX4/PPP5S6FJAgNDcXEiRMxceJEuUshK9i0aRNee+01HD9+nJM5kiRs4SGy0FtvvYUmTZpUq0MsEVVPfn4+VqxYwbBDkvFfDJGFfHx88Oabb8pdBpFDe+qpp+QugeooXtIiIiIiu8dLWkRERGT3GHiIiIjI7jHwEBERkd1j4CEiIiK7x8BDREREdo+Bh4iIiOweAw8RERHZPQYeIiIisnv/D3M5xaPXhEa8AAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Let's plot the probability of having a mean between -1 and 1\n",
    "# as a function of N.\n",
    "\n",
    "plt.plot(N_range, mean_values_of_std)\n",
    "plt.xlabel(\"N (number of samples in the mean)\")\n",
    "plt.ylabel(\"Mean of the standard deviation\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Task 2. Who's taller?"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "In a certain populations, the height of men is described by a normal distribution of average 180cm and std 10cm, whereas the height of women is on average 170cm with a std of 10cm. Find the probability of one randomly chosen man to be taller than one randomly chosen woman. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Probability of a man being taller than woman:  0.7608\n"
     ]
    }
   ],
   "source": [
    "men_heights = np.random.normal(loc=180, scale=10, size=100000)\n",
    "women_heights = np.random.normal(loc=170, scale=10, size=100000)\n",
    "\n",
    "# To calculated the probability that a randomly selected man\n",
    "# is taller than a randomly selected women, we need to calculate\n",
    "# the probability that the difference between the heights is positive.\n",
    "\n",
    "difference = men_heights - women_heights\n",
    "p = np.sum(difference > 0) / len(difference)\n",
    "\n",
    "print(\"Probability of a man being taller than woman: \", p)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now find the probability P that the mean height of N=3 randomly chosen men is larger than the mean of 3 randomly chosen women."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Probability of 3 radomly selected men being taller\n",
      "on average than 3 randomly selected women:  0.88973\n"
     ]
    }
   ],
   "source": [
    "# Now let's calculate the probability of 3 randomly selected\n",
    "# men being taller on average than 3 randomly selected women.\n",
    "N = 3\n",
    "M = 100000\n",
    "men_heights = np.random.normal(loc=180, scale=10, size=(N, M))\n",
    "women_heights = np.random.normal(loc=170, scale=10, size=(N, M))\n",
    "\n",
    "mean_three_men_height = np.mean(men_heights, axis=0)\n",
    "mean_three_women_height = np.mean(women_heights, axis=0)\n",
    "\n",
    "difference = mean_three_men_height - mean_three_women_height\n",
    "p = np.sum(difference > 0) / len(difference)\n",
    "\n",
    "print(\"Probability of 3 radomly selected men being taller\")\n",
    "print(\"on average than 3 randomly selected women: \", p)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Find how this probability depends on N, plot P(N) (optionally: as a log plot of 1-P). How large does N need to be so that you find with 99.7% probability, that the mean height of men is bigger than the mean height of women?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [],
   "source": [
    "N_range = np.arange(2, 101, 2)\n",
    "p_range = []\n",
    "for N in N_range:\n",
    "    men_heights = np.random.normal(loc=180, scale=10, size=(N, M))\n",
    "    women_heights = np.random.normal(loc=170, scale=10, size=(N, M))\n",
    "\n",
    "    mean_three_men_height = np.mean(men_heights, axis=0)\n",
    "    mean_three_women_height = np.mean(women_heights, axis=0)\n",
    "\n",
    "    difference = mean_three_men_height - mean_three_women_height\n",
    "    p = np.sum(difference > 0) / len(difference)\n",
    "    p_range.append(p)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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QqGAk5MT8vPz4ejoaLDv+ePvO+iz6Hd4OslxIKa7wb6HiIjIHIhpv0XPAdq7dy/8/Pxw+PBhJCUlobCwEABw6tQpTJ06tWoRm6lC7gRPRERkEqIToOjoaHz22WfYtWsXrKysNOUvvPACDh06pNfgaroCrgFERERkEqIToD///BP9+/evUO7m5oabN2/qJShz8aAHiPuAERERGZPoBMjZ2RnXr1+vUH7ixAl4eXnpJShzwTWAiIiITEN0AvTGG2/g448/RnZ2NiQSCdRqNX7//Xd8+OGHGDJkiCFirLHKEyA7az4CT0REZEyiE6BZs2ahefPm8Pb2RmFhIVq2bIlnn30WnTt3RmxsrCFirLEKyofArDkERkREZEyix16srKywfPlyTJ48GadPn0ZhYSECAwPRpEkTQ8RXoxUp+RQYERGRKVS55a1fvz7q16+vz1jMDucAERERmYbollcQBHz33Xf49ddfkZubW2GPraSkJL0FV9MVcB0gIiIikxDd8o4fPx7Lli3D888/D3d3d27h8AQKlaUAuA4QERGRsYluedeuXYukpCT07NnTEPGYlULOASIiIjIJ0U+BOTk5oVGjRoaIxeyUL4TIOUBERETGJToBmjZtGqZPn4579+4ZIh6z8mAdICZARERExiS65R04cCC++eYbuLm5wcfHB5aW2mvYHD9+XG/B1XQP1gFiAkRERGRMolve8PBwpKamYvDgwZwE/QRKVWooy+4/QefAOUBERERGJbrl3b59O3bs2IGuXbsaIh6zUb4IIsAhMCIiImMTPQfI29sbjo6OhojFrJQPf8ktpbCUif41EBER0RMQ3fLOnTsXEydOxJUrVwwQjvnQPALPfcCIiIiMTvTYy+DBg3H37l34+vrC1ta2wiTovLw8vQVXk2m2weD8HyIiIqMT3fomJCQYIAzzU8gnwIiIiEymSk+B0ZMr0KwBJDNxJEREROaHs29N5EEPEOcAERERGRsTIBMp3wiVc4CIiIiMjwmQiRQqVQA4B4iIiMgUmACZiGYIjD1ARERERscEyETKh8DYA0RERGR8Ore+w4YNe2wdiUSCr7766okCMhdcB4iIiMh0dG59b9++/dDPVCoVdu/eDaVSyQRIR9wJnoiIyHR0bn23bNlSafn333+PSZMmwdraGlOmTNFbYDVdoWYdICZARERExlblOUC///47nnnm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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Let's plot the probability of having a mean between -1 and 1\n",
    "# as a function of N.\n",
    "\n",
    "plt.plot(N_range, p_range)\n",
    "plt.xlabel(\"N (number of samples in the mean)\")\n",
    "plt.ylabel(\"P of N men being taller N women on average\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Number of samples needed to have a probability of 99.7%:  16\n"
     ]
    }
   ],
   "source": [
    "# Finding the number of samples needed to have a probability\n",
    "# of 99.7% that the mean of the men's heights is greater than\n",
    "# the mean of women's heights.\n",
    "\n",
    "p_target = 0.997\n",
    "p_range = np.array(p_range)\n",
    "index = np.where(p_range > p_target)[0][0]\n",
    "N_target = N_range[index]\n",
    "\n",
    "print(\"Number of samples needed to have a probability of 99.7%: \", N_target)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "base",
   "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.10.14"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
