lehrkraefte:blc:math-2021hw:pi-wuerfeln-mit-python

$\pi$ würfeln

Idee: Man wählt wiederholt zufällig einen Punkt $P$ im Einheitsquadrat (achsenparalleles Quadrat mit Ecken $(0,0)$ und $(1,1)$).

Man zählt, wie oft der Punkt im Einheitskreis liegt. Der erwartete Anteil entspricht dem Flächenverhältnis zwischen Viertelkreis und Quadrat, also $\frac{\pi}{4}$.

WebTigerPython: https://webtigerpython.ethz.ch/

from random import random
 
def punkt():
    x = random()
    y = random()
    if ........   # Punkt im Kreis?
        return 1  # Resultat ist 1
    return 0      # Resultat ist 0
 
# Test-Code
for i in range(20):
    print(f"Test {i}: {punkt()}")
def experiment(n):
    summe = 0
    for i in range(n):
        summe += punkt()
    # Mittelwert
    xbar = summe/n
    # Standardabweichung
    s = (1/(n-1)*(summe*(1-xbar)**2 + (n-summe)*xbar**2))**0.5
    return [xbar, s]
 
# Test-Code    
print(experiment(1000))
def intervall(n):
    e = experiment(n)
    etwapi = e[0]*4
    s = e[1]*4
    sbar = s/(n**0.5)
    return [etwapi - 2*sbar, etwapi + 2*sbar]
 
# Test-Code    
for i in range(10):
    print(intervall(100))
import math
def vertrauensfrage(n,k):
    ok = 0
    for i in range(k):
        bereich = intervall(n)
        if (math.pi>bereich[0] and math.pi<bereich[1]):
            ok += 1
    return ok/k
 
# Test-Code
print(vertrauensfrage(100,1000))

In der Funktion vertrauensfrage berechnen Sie die Standardabweichung der Schätzung des Anteils und damit ein Vetrauensintervall.

Wie verhält sich das Intervall für kleine $n$? Siehe auch Tabelle einiger t-Quantile: https://de.wikipedia.org/wiki/Studentsche_t-Verteilung

  • lehrkraefte/blc/math-2021hw/pi-wuerfeln-mit-python.txt
  • Last modified: 2024/10/30 09:40
  • by Ivo Blöchliger