Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| lehrkraefte:sbt:informatik-glf2-23-4 [2023/03/10 06:01] – Karlheinz Schubert | lehrkraefte:sbt:informatik-glf2-23-4 [2023/03/24 12:28] (current) – Karlheinz Schubert | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== Simulation von Zufallexperimenten ====== | ||
| + | ===== Sammelbilderproblem ===== | ||
| + | |||
| + | Problemlösung durch Simulation | ||
| + | |||
| + | <WRAP center round todo> | ||
| + | ==== Das Problem ==== | ||
| + | |||
| + | Beim Sammelbildproblem (auch: Sammler-Problem) stellt man sich die Frage, wie viele Sammelbilder man kaufen muss, um ein ganzes Album voll zu bekommen. Wir betrachten dazu das Beispiel der Panini Fussballbil- der. | ||
| + | |||
| + | ==== Annahmen ==== | ||
| + | |||
| + | Im Sammelalbum zu einer Fussball-Grossveranstaltung hat es insgesamt 680 Bilder. Ein Päckchen mit 5 Bildern kostet am Kiosk CHF 1.-. | ||
| + | Alle Bilder sind gleich häufig. [^1] | ||
| + | |||
| + | Repititiere, | ||
| + | |||
| + | <hidden Listenspielereien und print Befehle in Python2> | ||
| + | <code python listen.py> | ||
| + | """ | ||
| + | | ||
| + | """ | ||
| + | |||
| + | animals = [" | ||
| + | print(animals) | ||
| + | print(" | ||
| + | for animal in animals: | ||
| + | print(" | ||
| + | print(" | ||
| + | |||
| + | animals.append(" | ||
| + | print(" | ||
| + | for animal in animals: | ||
| + | print(" | ||
| + | print(" | ||
| + | |||
| + | newAnimal = input(" | ||
| + | if newAnimal not in animals: | ||
| + | animals.append(newAnimal) | ||
| + | else: | ||
| + | print(" | ||
| + | print(" | ||
| + | for animal in animals: | ||
| + | print(" | ||
| + | print(" | ||
| + | |||
| + | animals.sort(reverse=True) | ||
| + | for animal in animals: | ||
| + | print(" | ||
| + | print(" | ||
| + | n = 2 | ||
| + | print(" | ||
| + | |||
| + | |||
| + | vn = [" | ||
| + | nn = [" | ||
| + | |||
| + | for index in range(0, | ||
| + | print(" | ||
| + | | ||
| + | # Zuweisen von Werten zu LIsten | ||
| + | names = [' | ||
| + | marks = [7, 9, 8, 5] | ||
| + | div = [' | ||
| + | id = [21, 52, 27, 38] | ||
| + | | ||
| + | # Ueberschrift ausgerichtet drucken | ||
| + | print(" | ||
| + | | ||
| + | # Werte ausgerichtet drucken | ||
| + | for i in range(0, 4): | ||
| + | print(" | ||
| + | | ||
| + | # Liste generisch erzeugen | ||
| + | Zahl = 0 | ||
| + | Anzahl = 100 | ||
| + | DieListe=[Zahl]*Anzahl | ||
| + | Laenge = len(DieListe) | ||
| + | print(" | ||
| + | |||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | <WRAP center round todo> | ||
| + | ==== 1. Aufgabe ==== | ||
| + | |||
| + | Rein hypothetisch: | ||
| + | |||
| + | </ | ||
| + | <WRAP center round todo> | ||
| + | ==== 2. Aufgabe ==== | ||
| + | |||
| + | Realistisch: | ||
| + | * Du darfst die Vereinfachung machen, dass man die Bilder einzeln kaufen kann. | ||
| + | * Beschreibe zuerst deine Idee, wie du den Computer das Problem simulieren lässt. | ||
| + | * Schreibe eine Funktion sim, welche das Sammelbildproblem einmal simuliert und die Anzahl nötiger Bilder ausgibt. | ||
| + | * Führe sim mehrmals durch und bestimme die durchschnittliche Anzahl nötiger Bildkäufe. | ||
| + | |||
| + | <hidden Lösungsvorschlag> | ||
| + | <code python listen.py> | ||
| + | """ | ||
| + | Simulation Sammelbilder | ||
| + | A2) Wieviele Bilder muss ein einzelner kaufen, um sein Album zu füllen? | ||
| + | """ | ||
| + | from random import randint | ||
| + | |||
| + | |||
| + | def sim(): | ||
| + | zaehler = 0 | ||
| + | Sammelliste = [] | ||
| + | while len(Sammelliste) < 680: | ||
| + | einBildchen = randint(1, 681) | ||
| + | if einBildchen in Sammelliste: | ||
| + | zaehler += 1 | ||
| + | else: | ||
| + | Sammelliste.append(einBildchen) | ||
| + | zaehler += 1 | ||
| + | return zaehler | ||
| + | |||
| + | gesamtzahl = 0 | ||
| + | anzahlSimulationen = 200 | ||
| + | for index in range(0, anzahlSimulationen): | ||
| + | x = sim() | ||
| + | gesamtzahl += x | ||
| + | |||
| + | print(" | ||
| + | print(" | ||
| + | gesamtzahl/ | ||
| + | |||
| + | |||
| + | # Optimiere die sim Funktion! | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | <WRAP center round todo> | ||
| + | ==== 3. Aufgabe ==== | ||
| + | |||
| + | Mit Tausch: Wir gehen nun davon aus, dass zwei Freunde miteinander eifrig tauschen. Versuche auch dieses Problem zu simulieren. Wie stark verringert sich die Zahl der jeweils gekauften Bilder? | ||
| + | |||
| + | Überlege, wie das Problem simuliert werden kann. | ||
| + | </ | ||
| + | <WRAP center round todo> | ||
| + | ==== 4. Aufgabe ==== | ||
| + | |||
| + | Mit Tauschbörse: | ||
| + | |||
| + | <hidden Tipp> | ||
| + | Um das Problem effizient zu simulieren, kannst du ähnlich wie in Aufgabe 2 vorgehen, es wird jedoch jeweils solange gekauft, bis jedes Bild 50 mal vorkommt (dann haben alle ihr Album voll. | ||
| + | </ | ||
| + | </ | ||