From e1404375dbbbc5b55fa2566aca928ff5d89b23a1 Mon Sep 17 00:00:00 2001 From: Vince Knight Date: Wed, 30 Oct 2024 09:54:36 +0000 Subject: [PATCH] Add introduction to probability log. (#373) --- .../2024-10-29-introduction-to-probability.md | 19 + assets/nbs/2024-2025/probability.ipynb | 1354 +++++++++++++++++ 2 files changed, 1373 insertions(+) create mode 100644 _posts/2024-10-29-introduction-to-probability.md create mode 100644 assets/nbs/2024-2025/probability.ipynb diff --git a/_posts/2024-10-29-introduction-to-probability.md b/_posts/2024-10-29-introduction-to-probability.md new file mode 100644 index 0000000..cba04f1 --- /dev/null +++ b/_posts/2024-10-29-introduction-to-probability.md @@ -0,0 +1,19 @@ +--- +layout: post +title: "Introduction to Probability" +tags: + - probability +--- + +In class today I gave an overview of how to use the `random` library to simulate +random event to study probability problems. + +You can see a recording of the class [here](https://cardiff.cloud.panopto.eu/Panopto/Pages/Viewer.aspx?id=90d8266a-49d4-47b1-aeaa-b21300f7ce7c) + +Here is the notebook I used in class: +[probability.ipynb]({{site.baseurl}}/assets/nbs/2024-2025/probability.ipynb) + +Here is a recording of a summary I recorded during the 2020/2021 academic year: [https://www.youtube.com/watch?v=u-ii1TeLHrM](https://www.youtube.com/watch?v=u-ii1TeLHrM). +You might find that helpful. + +If you have any questions please let me know. diff --git a/assets/nbs/2024-2025/probability.ipynb b/assets/nbs/2024-2025/probability.ipynb new file mode 100644 index 0000000..6089790 --- /dev/null +++ b/assets/nbs/2024-2025/probability.ipynb @@ -0,0 +1,1354 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "e29d6fe9-a94a-4ef1-9854-5f95c560b706", + "metadata": {}, + "source": [ + "A delivery company delivers fragile items. If a delivery is on time it is usually because it was rushed. The probability that an item is delivered on time is $0.75$. The probability that an item is broken given that it arrived on time is $0.3$ and if it is late $0.2$.\n", + "\n", + "What is the probability that an item is late?\n", + "Given that an item is broken what is the probability that it was on time?" + ] + }, + { + "cell_type": "markdown", + "id": "b8cf788c-72be-4d19-a6db-0ed39c95ea3b", + "metadata": {}, + "source": [ + "We will start by writing some code to simulate a single delivery." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "78e8db4a-29af-41b8-a852-d6e3182137bd", + "metadata": {}, + "outputs": [], + "source": [ + "import random" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "a90d0e4b-8b74-4ed9-82d5-31553a0c7884", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.8444218515250481" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "random.seed(0)\n", + "random.random()" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "2400a293-1dd2-477a-9634-ab2db5402988", + "metadata": {}, + "outputs": [], + "source": [ + "def is_delivery_late():\n", + " \"\"\"\n", + " Returns a boolean indicating if a given delivery is late or not.\n", + " \"\"\"\n", + " return random.random() > .75" + ] + }, + { + "cell_type": "markdown", + "id": "b83c7d03-b8bc-48dc-9980-3b1c9ce7d913", + "metadata": {}, + "source": [ + "is_delivery_late?" + ] + }, + { + "cell_type": "markdown", + "id": "acf98eea-c3ac-43b5-96ea-bf39aca8b58d", + "metadata": {}, + "source": [ + "Now that we have the ability to simulate a delivery. Let us create a large number of deliveries:" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "id": "7ab26727-7d2a-4ac9-bfe6-7cdfeb91a931", + "metadata": {}, + "outputs": [], + "source": [ + "number_of_repetitions = 10_000\n", + "samples = [is_delivery_late() for repetition in range(number_of_repetitions)]" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "id": "55494a8e-cc7e-41e3-9ddb-c2521ea5b352", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "10000" + ] + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "len(samples)" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "id": "662c3667-5eeb-4787-a6bb-3bfd58be2165", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "list" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "type(samples)" + ] + }, + { + "cell_type": "markdown", + "id": "2348ffaa-1a79-450f-b96a-c31693b86903", + "metadata": {}, + "source": [ + "We can now estimate the probability of a delivery being late:" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "id": "8add7747-467e-43c0-810a-7c3de3e113e1", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.2491" + ] + }, + "execution_count": 30, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sum(samples) / number_of_repetitions" + ] + }, + { + "cell_type": "markdown", + "id": "d4efff1e-79a7-4c85-9a46-a38d90311911", + "metadata": {}, + "source": [ + "This can be confirmed theoretically. If the probability of being late is $.75$ then the probability of being on time is $1 - .75=.25$" + ] + }, + { + "cell_type": "markdown", + "id": "14ffe959-22a1-4f50-b531-8dd2a0f43ff7", + "metadata": {}, + "source": [ + "sum??" + ] + }, + { + "cell_type": "markdown", + "id": "4edf1fda-0eb4-44f4-8017-29e05a4ad2a0", + "metadata": {}, + "source": [ + "Now to write some code to simulate the entire experiment: not just if it was late but also if it was broken." + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "id": "541efd39-c5e5-45e7-ae06-49bc0c2172b8", + "metadata": {}, + "outputs": [], + "source": [ + "def sample_experiment():\n", + " \"\"\"\n", + " This samples a delivery and depending on whether or not it is late\n", + " selects whether or not the item is broken.\n", + " \"\"\"\n", + " is_late = is_delivery_late()\n", + "\n", + " if is_late is True:\n", + " probability_of_broken = .2\n", + " else:\n", + " probability_of_broken = .3\n", + "\n", + " is_broken = random.random() < probability_of_broken\n", + " return is_late, is_broken" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "id": "685520ce-0425-4c6b-865b-1cea6b42b71e", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(False, True)" + ] + }, + "execution_count": 52, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sample_experiment()" + ] + }, + { + "cell_type": "markdown", + "id": "cd9d90d4-c5c9-4e1c-9424-e30000d2c96a", + "metadata": {}, + "source": [ + "Let us now repeat the experiments:" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "id": "4ebed52b-37f0-419f-ad5a-d2e189d896fd", + "metadata": {}, + "outputs": [], + "source": [ + "samples = [sample_experiment() for repetition in range(number_of_repetitions)]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7116b94c-e8cc-4e05-88e9-a4bf27852d82", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 49, + "id": "eafa778c-e25e-4716-9569-d5a314393cc6", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[(True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, True),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, True),\n", + " (True, True),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, True),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, True),\n", + " (True, True),\n", + " (True, True),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, True),\n", + " (True, True),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, True),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, True),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, True),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, True),\n", + " (True, True),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, True),\n", + " (True, True),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, True),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, True),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, True),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, True),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, True),\n", + " (True, False),\n", + " (True, True),\n", + " (True, True),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, True),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, True),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, True),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " (True, False),\n", + " ...]" + ] + }, + "execution_count": 49, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "deliveries_that_were_late\n" + ] + }, + { + "cell_type": "markdown", + "id": "8ed40afc-9ae0-49c1-8519-3363fc340dd9", + "metadata": {}, + "source": [ + "Let us now select the deliveries that were broken from all our deliveries:" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "id": "307df3dd-3e62-43ad-ab7f-0d4261b6bd65", + "metadata": {}, + "outputs": [], + "source": [ + "deliveries_that_were_broken = [\n", + " (is_late, is_broken) \n", + " for (is_late, is_broken) in samples\n", + " if is_broken is True\n", + "]" + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "id": "08fbc330-6a84-4362-834b-833c78f0b3c0", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.275" + ] + }, + "execution_count": 56, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "len(deliveries_that_were_broken) / number_of_repetitions" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "754d03a2-56d3-4d74-8294-3a1715758f3c", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "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.13.0" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}