{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "![alt text](https://github.com/callysto/callysto-sample-notebooks/blob/master/notebooks/images/Callysto_Notebook-Banner_Top_06.06.18.jpg?raw=true)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# The Bridge Problem" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "image/jpeg": "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\n", "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#Import Youtube Video\n", "from IPython.display import YouTubeVideo\n", "YouTubeVideo('7yDmGnA8Hw0')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Any solution to this problem must involve five steps, as in the animation below:\n", "### Step 1: Two people cross the bridge.\n", "### Step 2: One person goes back.\n", "### Step 3: Two people cross the bridge.\n", "### Step 4: One person goes back.\n", "### Step 5: Two people cross the bridge." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%%html\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## We just discovered two possible \"algorithms\" to solve this problem: \n", "### Option 1: Always sending the fastest person\n", "### Option 2: Combining the two slowest people" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "def CalculateTime(A, B, C, D):\n", " t=[A,B,C,D]\n", " t.sort()\n", " A=t[0] \n", " B=t[1] \n", " C=t[2] \n", " D=t[3]\n", " print('Sending Fastest Person solves the problem in', B+A+C+A+D, 'minutes')\n", " print('Combining Two Slowest solves the problem in', B+A+D+B+B, 'minutes')\n", " return" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Let's compare our algorithms, and see which one is faster.\n", "### Let's experiment by trying different input values for A, B, C, and D." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "scrolled": true }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "90f2f7fb24c8459c8c05317ff7e58a3a", "version_major": 2, "version_minor": 0 }, "text/html": [ "

Failed to display Jupyter Widget of type interactive.

\n", "

\n", " If you're reading this message in the Jupyter Notebook or JupyterLab Notebook, it may mean\n", " that the widgets JavaScript is still loading. If this message persists, it\n", " likely means that the widgets JavaScript library is either not installed or\n", " not enabled. See the Jupyter\n", " Widgets Documentation for setup instructions.\n", "

\n", "

\n", " If you're reading this message in another frontend (for example, a static\n", " rendering on GitHub or NBViewer),\n", " it may mean that your frontend doesn't currently support widgets.\n", "

\n" ], "text/plain": [ "interactive(children=(IntSlider(value=1, description='A', max=20, min=1), IntSlider(value=1, description='B', max=20, min=1), IntSlider(value=1, description='C', max=20, min=1), IntSlider(value=1, description='D', max=20, min=1), Output()), _dom_classes=('widget-interact',))" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from ipywidgets import interact\n", "import ipywidgets as widgets\n", "interact(CalculateTime,\n", "A=widgets.IntSlider(min=1, max=20),\n", "B=widgets.IntSlider(min=1, max=20),\n", "C=widgets.IntSlider(min=1, max=20),\n", "D=widgets.IntSlider(min=1, max=20))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Two Challenge Questions\n", "### For which values of (A,B,C,D) do the above solutions result in the same total time?\n", "### How many different ways can the four people cross the bridge? (Hint: the answer is more than 100!)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "![alt text](https://github.com/callysto/callysto-sample-notebooks/blob/master/notebooks/images/Callysto_Notebook-Banners_Bottom_06.06.18.jpg?raw=true)" ] } ], "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.6.5" } }, "nbformat": 4, "nbformat_minor": 2 }