lehrkraefte:blc:math-2021hw:muenzwuerfe-mit-python

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
lehrkraefte:blc:math-2021hw:muenzwuerfe-mit-python [2024/10/23 08:21] – created Ivo Blöchligerlehrkraefte:blc:math-2021hw:muenzwuerfe-mit-python [2024/10/24 05:39] (current) – [Experiment 50 Münzwürfe] Ivo Blöchliger
Line 1: Line 1:
 +Vorbereitung:
 +
 +  * Programmieren Sie auf https://webtigerpython.ethz.ch/ 
 +  * oder mit VSCode (**Open Folder**, dann neue Python-Datei anlegen)
 +
 +====== Münzen werfen mit Python ======
 +Als Konvention soll «Kopf» mit 0 und «Zahl» mit 1 dargestellt werden.
 +
 +===== Experiment 50 Münzwürfe =====
 +<code python>
 +from random import randrange
 +n = 50
 +summe = 0
 +for i in range(n):
 +    wurf = randrange(2)
 +    summe = summe + wurf
 +    print(wurf, end="")
 +print(f"\n{summe} aus {n}")
 +</code>
 +
 +===== Histogramm =====
 +<code python>
 +from random import randrange
 +n = 20
 +wiederholungen = 1000
 +
 +hist = [0 for i in range(n+1)]
 +for w in range(wiederholungen):
 +    summe = 0
 +    for i in range(n):
 +        wurf = randrange(2)
 +        summe += wurf
 +    hist[summe] += 1
 +    
 +print(hist)
 +</code>
 +
 +==== Ausgabe mit Tabulatoren ====
 +Die so produzierte Ausgabe sollte sich in eine Tabellenkalkulation zur Anzeige einfügen lassen
 +
 +Fügen Sie folgende Funktion nach den Defintionen von ''n'' und ''wiederholungen'' ein:
 +<code python>
 +def tabulated(h):
 +    for i in range(n+1):
 +        print(f"{i}\t{h[i]}")
 +</code>
 +und rufen Sie diese Funktion am Ende des Programms mit ''tabulated(hist)'' auf und kopieren Sie die Werte in ein Tabellenkalkulationsprogramm und erstellen Sie damit ein Balkendiagramm.
 +
 +==== ASCII-Art Ausgabe ====
 +
 +<code python>
 +def asciiart(h, height=15):
 +    nonzero = [i for i in range(len(h)) if h[i]>0]
 +    first = min(nonzero)
 +    last = max(nonzero)
 +    maxh = max(h)
 +    for y in range(height):
 +        for x in range(first, last):
 +            if h[x]/maxh>(height-y-0.5)/height:
 +                print("|##", end="")
 +            else:
 +                print("   ", end="")
 +        print()
 +    for x in range(first, last):
 +        print("%3d" % x, end="")
 +    print()
 +</code>
 +
 +
 +