{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Programmieraufgabe 2 " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Wichtig: Damit alle benötigten Pakete richtig eingebunden werden, führen Sie die nächste Zelle einmal aus." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# some setup\n", "%matplotlib inline\n", "import numpy as np # makes numpy routines and data types available as np.[name ouf routine or data type]\n", "import matplotlib.pyplot as plt # makes plotting command available as plt.[name of command]\n", "from numpy import random\n", "from ipywidgets import interactive\n", "import scipy.stats\n", "\n", "random.seed(0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## a) Zahlenlotto\n", "Simulieren Sie das bekannte Zahlenlotto (6 aus 49) ohne Zusatzzahl.
\n", "Eingabe: Die Anzahl der Kugeln (zB: $m=49$), die Anzahl der zu ziehenden Kugeln (zB: $n=6$) einlesen. Ausserdem eine $n-$elementige Liste, die den Tip enthält (zB: $L = [4,1,6,7,15,45]$ und die Anzahl $l$ der Ziehungen.
\n", "\n", "Ausgabe: Die absoluten Häufigkeiten von von \"Nullern\", \"Einern\", \"Zweiern\", \"Dreiern\", \"Vierern\", \"Fünfern\" und \"Sechsern\". Dabei geht es nur um die Anzahlen der mit dem Tip getroffenen Zahlen, die Reihenfolge spielt keine Rolle \n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Definieren Sie zunächst eine Funktion draw(), die das \"Ziehen ohne Zurücklegen\" realisiert. " ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "def draw(m,n):\n", " #insert code here\n", " return x\n", " #x is a list of randomly drawn numbers out of {1,...,m}\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Wieviele Zahlen in den Listen $x$ und $y$ sind gleich? Dies soll die Funktion compare() liefern." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "def compare(x,y):\n", " #insert code here\n", " return equ\n", " #equ is the number of equal entries in the lists x and y" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "#Main program\n", "\n", "random.seed(\"Nachname\")\n", "\n", "m = input(\"Anzahl der Kugeln: \")\n", "n = input(\"Anzahl der zu ziehenden Kugeln: \")\n", "l = input(\"Anzahl der Versuche: \")\n", "x = input(\"Tip: \")\n", "#Input a list by [1,2,3,4,5,6]\n", "\n", "z = np.zeros(n+1)\n", "\n", "#Insert code here:\n", "# 1) Do some basic exception handling...\n", "\n", "for i in range(l):\n", " y = draw(m,n)\n", " equ = compare(x,y)\n", " z[equ] += 1;\n", " #insert code here\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## b) Würfeln \n", "\n", "(i) Erzeugen Sie eine Liste mit $n = 100$ Zufallszahlen aus der Menge $\\{ 1,2,3,4,5,6 \\}$,\n", "und bestimmen Sie, wie oft die Zahl 6 in der Liste vorkommt. \n", "Welche Verteilung hat die Zufallsvariable $Z(\\omega)$, die dieses Zufallsexperiment modelliert?\n", "\n", "(ii) Wir wiederholen das Experiment nun $l = 1000$ mal. \n", "Speichern Sie in einer Liste $z$ die beobachteten (relativen) Häufigkeiten der Zahl 6 in jeder der $l$ Stichproben von jeweils $n$ Zufallszahlen.\n", "\n", "(iii) Die Liste $z$ enthält nun $l$ (pseudozufällige) Realisierungen der Werte der Zufallsvariablen $Z$. \n", "Erstellen Sie ein Histogramm ($\\texttt{numpy.histogram}$) von $z$. \n", "Zeichnen Sie das Histogramm in ein Diagramm zusammen mit der Massenfunktion ($\\texttt{scipy.stats.binom.pmf}$) der Zufallsvariablen $Z$ \n", "und vergleichen Sie.\n", "\n", "(iv) Erstellen Sie mithilfe von $\\texttt{interactive}$ ein entsprechendes Histogramm für die ersten\n", "$k$ Werte der Liste $z$, wobei $k$ zwischen 1 und $l$ variiert werden kann. Was beobachten Sie?" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "anaconda-cloud": {}, "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.4" }, "widgets": { "state": { "dc3a3f1d23314758bf356f952c03d594": { "views": [ { "cell_index": 4 } ] } }, "version": "1.2.0" } }, "nbformat": 4, "nbformat_minor": 1 }