lehrkraefte:blc:informatik:glf4-20:simulation:python-repe-exos

This is an old revision of the document!


Einstiegsaufgaben Simulation mit Python

Corona-Prognose

Vervollständigen Sie folgende Programm, um die kommenden Wochen zu prognostizieren:

# Wöchentlicher Durchschnitt
fallzahlen = 1600
# Wöchentliche Zunahme in Prozent (oder Abnahme negativ)
zunahme = 20

Die Ausgabe soll wie folgt sein:

Woche 0: 1600.000000
Woche 1: 1920.000000
Woche 2: 2304.000000
Woche 3: 2764.800000
Woche 4: 3317.760000
Woche 5: 3981.312000
Woche 6: 4777.574400
Woche 7: 5733.089280
Woche 8: 6879.707136
Woche 9: 8255.648563

Würfelsumme

Programmieren Sie eine Funktion, die die Summe zweier (normaler) Spielwürfel zurückgibt.

from random import randrange
def wuerfelsumme():
    # zwei mal Würfeln, addieren, summe mit return zurückgeben.
    return 0     # Muss die Summe, nicht 0 zurückgeben, aber sonst ist das Programm nicht lauffähig.
 
for i in range(10):
    print(wuerfelsumme())

Würfelsumme von n Würfeln

Programmieren Sie eine Funktion, die die Summe von $n$ Würfeln zurückgibt.

from random import randrange
def wuerfelsumme(n):
    # n mal Würfeln, addieren, summe mit return zurückgeben.
    return 0     # Muss die Summe, nicht 0 zurückgeben, aber sonst ist das Programm nicht lauffähig.
 
for i in range(10):
    print(wuerfelsumme())

Wir wollen jetzt ermitteln, welche Würfelsumme wie oft vorkommt. Dazu benutzen wir eine Liste, deren $i$-ter Eintrag angibt, wie oft die Summe $i$ gewürfelt wurde.

Liste mit n Nullen

Schreiben Sie eine Funktion, die eine Liste mit $n+1$ Nullen erzeugt und zurückgibt.

def nullen(n):
    liste=[]
    # Liste mit n+1 Nullen füllen
    return liste
print(nullen(3))   # Muss [0,0,0,0] ausgeben (6 Einträge)

Histogram

Schreiben Sie ein Programm, das am Anfang am Anfang folgende Variablen festlegt:

from random import randrange
wuerfel = 4         # Anzahl Würfel
versuche = 1000     # Wie viel mal Würfeln
 
# Funktionen definieren
 
# Liste mit Nullen erzeugen
# Zufallsversuch durchführen und Einträge entsprechend erhöhen.
 
csv = ""     # Zeichenkette für Resultat
#  CSV-Zeichenkette aufbauen (\n in Zeichenkette für Zeilumbruch einfügen)
 
datei = File.open("histogram.csv", "w")    # Datei überschreiben (schlägt fehl, wenn in Excel geöffnet)
datei.write(csv)                           # Datei in Datei schreiben
datei.close()                              # Datei schliessen

Erzeugen Sie mit der Funktion der Aufgabe darüber eine Liste mit genügend Einträgen, damit jede mögliche Summe einen Platz in der Liste hat.

Bestimmen Sie dann versuche mal die Summe von wuerfel Würfeln (mit der Funktion zwei Aufgaben weiter oben).

Histogramm in Excel zeichnen

Laden Sie die CSV-Datei in Excel, um das Histogram zu zeichnen.

Expert-Aufgaben

Corona-Simulation kompliziert

Versuchen Sie, einen Epidemieverlauf zu prognostizieren, indem Sie die Grösse von entsprechenden Gruppen (ansteckbar, angesteckt, ansteckend, krank, genesen und immun) simulieren. Plotten Sie dann den Verlauf der Epidemie.

Besuchswahrscheinlichkeit

In einem ganz einfachen Würfelspiel startet die Spielfigur bei Feld 0 und zieht immer so viele Felder weiter, wie gewürfelt wurde. Ein Kollege von mir meinte, dass die Felder, die Vielfache von 7 sind, häufiger erreicht werden, und darum sei z.B. das Feld 28 häufig ein Spezialfeld. Ist da was dran? Berechnen Sie die Wahrscheinlichkeiten, dass ein Feld besucht wird (angenähert oder exakt).

  • lehrkraefte/blc/informatik/glf4-20/simulation/python-repe-exos.1617042622.txt.gz
  • Last modified: 2021/03/29 20:30
  • by Ivo Blöchliger