{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# IA Paper 4 - Mathematics - Examples paper 9" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Question 10\n", "\n", "A coin is tossed ten times.\n", "\n", "(i) What is the probability of it coming down heads 5 times and tails 5 times?\n", "\n", "(ii) Which is the more likely: exactly 7 heads or more than 7 heads?\n", "\n", "Verify your answers by tossing a coin ten times and counting the number of heads. Repeat the experiment 100000 times and record the frequencies of the various numbers of heads. If you do not have time for 100000 repetitions, (IA engineers generally do), you could alternatively write a Python program to simulate the experiments." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Solution" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Load the required packages, `numpy` and `matplotlib`." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The code below generates the results. Comments are provided where appropriate to assist understanding. " ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Edit the line below to change the number of experiments, and observe the effect on the results\n", "num_experiments = 100000\n", "\n", "# Initialize an empty list to store the results\n", "results = []\n", "\n", "# Main loop over experiments\n", "for i in range(num_experiments):\n", " # Generate ten random numbers in the range 0 to 1, count how\n", " # many of them exceed 0.5 - this is equivalent to tossing a head\n", " num_heads = 0\n", " for j in range(10):\n", " if np.random.rand() > 0.5:\n", " num_heads += 1\n", "\n", " # Store how many heads there were in this experiment\n", " results.append(num_heads)\n", "\n", "# Plot a historgram of the number of heads\n", "n, bins, patches = plt.hist(results, 10, facecolor='green', alpha=0.7)\n", "plt.xlabel('number of heads')\n", "plt.ylabel('frequency');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can use the numerical results to determine the answer for parts (i) and (ii). \n", "\n", "The probability of the coins coming down on head exactly 5 times is:\n", "\n", "$$\n", "P(5) = \\mathcal{C}_5^{10} \\left( \\frac{1}{2} \\right)^5 \\left( \\frac{1}{2} \\right)^5 = 0.246\n", "$$\n", "\n", "The probability of getting 7 heads is:\n", "\n", "$$\n", "P(7) = \\mathcal{C}_7^{10} \\left( \\frac{1}{2} \\right)^7 \\left( \\frac{1}{2} \\right)^3 = 0.117\n", "$$\n", "\n", "and getting more than 7 heads:\n", "\n", "$$\n", "P(8, 9, 10) = \\mathcal{C}_8^{10} \\left( \\frac{1}{2} \\right)^8 \\left( \\frac{1}{2} \\right)^2\n", " + \\mathcal{C}_9^{10} \\left( \\frac{1}{2} \\right)^9 \\left( \\frac{1}{2} \\right)^1 \n", " + \\mathcal{C}_{10}^{10} \\left( \\frac{1}{2} \\right)^{10} \\left( \\frac{1}{2} \\right)^0\n", " = 0.055\n", "$$" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Proportion with five heads: 0.24626\n", "Proportion with seven heads: 0.11801\n", "Proportion with more than seven heads: 0.05494\n" ] } ], "source": [ "import operator \n", "def get_proportion(n, op, results):\n", " return sum(op(i, n) for i in results)/len(results) \n", " \n", "print('Proportion with five heads: {}'.format(get_proportion(5, operator.eq, results)))\n", "print('Proportion with seven heads: {}'.format(get_proportion(7, operator.eq, results)))\n", "print('Proportion with more than seven heads: {}'.format(get_proportion(7, operator.gt, results)))" ] } ], "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.6" } }, "nbformat": 4, "nbformat_minor": 4 }