Happy Pi-Day: Wir feiern mit Kuchen und Raspberry Pi(co)!

Heute feiern wir mit Pi(e) und Pi(co) den Pi-Day. Dieser startet ganz genau am 3/14 um 1:59:26 pm in US-amerikanischer Datumsschreibweise.

In Pocket speichern vorlesen Druckansicht 106 Kommentare lesen
Bild: Kuchenzeit!
Lesezeit: 5 Min.
Von
  • Carsten Wartmann
Inhaltsverzeichnis

Heute feiern wir mit Pi(e) und Pi(co) wieder den Pi-Day. Dieser findet – ganz genau – am 14. März um 1:59:26 statt. (Also 3/14 und 1:59:26 pm in US-amerikanischer Datumsschreibweise oder auch in ISO-Schreibweise.) Heute gibt es Kuchen und Mathe satt: Wir zeigen, wie man Pi auf dem Raspberry Pico berechnet, das Ergebnis auf einem Pimoroni-Pico-Display ausgibt und sich danach mit leckerem Käsekuchen belohnt.

Die Kreiszahl π (Pi) ist eine mathematische Konstante, die als Verhältnis des Umfangs eines Kreises zu seinem Durchmesser definiert ist. Sie steckt in vielen mathematischen und physikalischen Formeln. In der Praxis benötigt man sie oft zur Berechnung von Kreisumfang und -Fläche.

Kreisumfang: U = 2·π·r = D·π

Kreisfläche: A = π·r2 = π·(D/2)2

Dies gilt für Kreise mit Radius r oder Durchmesser D. Handwerker rechnen gerne mit dem Bruch 22/7, was etwa 3.1428... entspricht und ihnen so nur 0,04% Fehler in Rechnungen einbringt. Man kann auch lange mit dem Geist von Leibnitz diskutieren, ob nun Pi gerade oder ungerade ist, aber wir wollen es mal ganz praktisch und hemdsärmelig nach Maker-Manier angehen.

Die Kreiszahl Pi kann man auf viele Arten berechnen oder durch Versuche annähern. Da Pi unendlich viele Stellen hat, kann man sich auch mit noch so langer und genauer Berechnung nur immer weiter an Pi annähern, einen genauen Wert gibt es so nicht. Aktuell (2020) steht die Rekordstellenzahl bei 50.000.000.000.000 (50 Billionen) Stellen – berechnet auf Supercomputern in 303 Tagen mit hochoptimierten Algorithmen. Damit wurde Googles Rekord von 31.415.926.535.897 Stellen geknackt.

In der Praxis leichte und ohne viel Mathematik verständliche Verfahren gibt es auch; eines davon ist das "Monte Carlo"-Verfahren (nach dem berühmten Casino benannt). Dabei handelt es sich um eine statistische Berechnung, die nur bei sehr vielen Proben eine gute Näherung ergibt. Ihr Vorteil ist, das man sie gut verstehen und sowohl in der realen Welt, als auch auf Computern, demonstrieren kann.

Die Kreiszahl Pi wird mit der Monte-Carlo-Methode angenähert.

(Bild: Wikimedia/Springob)

Und so geht's: Man zeichne einen viertel Kreis mit dem Radius 1 (ein Meter z.B.), umschlossen von einem Quadrat (1x1 Meter), auf den Boden und warte auf leichten Regen. Nun zählt man die Tropfen im Kreis und die Gesamtzahl der Tropfen im Quadrat. Aus dem Verhältnis von Treffern oder Tropfen in der Kreisfläche zu der Gesamtzahl der Treffer ergibt sich 1/4π. Entsprechende Experimente mit Dartpfeilen mögen vielleicht mehr Spaß machen, sind aber etwas gefährlicher – also nur für geübte Make-Leser geeignet.

(Bild: https://de.wikipedia.org/wiki/Monte-Carlo-Simulation)

Apropos Pi(co): Wir haben zur Feier des Tages eine Version der vielen Monte-Carlo Programme für den aktuellen Mikrocontroller Raspberry Pico der Raspberry Pi Foundation geschrieben. Wir generieren zufällig Punkte in einem Quadrat und prüfen dann per Satz des Pythagoras (auf die Wurzel können wir wegen r=1 verzichten), ob der Punkt innerhalb des Kreises im Mittelpunkt liegt. Dann bilden wir den Quotienten aus Treffern und Versuchen und erhalten π/4. Das Ganze wird inklusive einiger statistischer Daten auf einem Pimoroni-Picodisplay visualisiert.

Der Kleine hat mit einem Kern lange gerechnet.

Treffer werden mit grünen Pixeln markiert, die Fehlschüsse mit roten Pixeln. Rechts neben der Versuchsfläche wird der aktuelle Wert von Pi angezeigt – darunter, wie viele Versuche bisher erfolgt sind. Darunter sehen wir wiederum die Fehler zu Pi. Alles natürlich nur im Rahmen der Genauigkeit von Pythons Mathematik und Fließkommazahlen – und unter der Annahme, dass wir keinen Fehler im Code eingebaut haben.

Empfohlener redaktioneller Inhalt

Mit Ihrer Zustimmmung wird hier ein externes Video (Kaltura Inc.) geladen.

Ich bin damit einverstanden, dass mir externe Inhalte angezeigt werden. Damit können personenbezogene Daten an Drittplattformen (Kaltura Inc.) übermittelt werden. Mehr dazu in unserer Datenschutzerklärung.

Der nachfolgende Code kann direkt auf den Pico kopiert und getestet werden. Eventuelle Verbesserungen und eine Version, die auf zwei Cores rechnet, gibt es auf GitHub als Pip.py zum Download.

# Pi nach Monte-Carlo Methode bestimmen
# caw@make-magazin.de, 2021-03-14

import math
import random
 
import picodisplay as display # Picodisplay!

width = display.get_width()
height = display.get_height()

display_buffer = bytearray(width * height * 2)  # 2-bytes per pixel (RGB565)
display.init(display_buffer)

display.set_backlight(1.0)
display.set_pen(255, 255, 255)        
display.clear()
display.update()


# Test eines Punktes
def one_sample():
    y, x = random.random(), random.random()   
    if math.pow(y,2) + math.pow(x,2) <= 1.0:
        display.set_pen(0, 255, 0)        
        display.pixel(int(x*height), int(y*height))
        return 1
    else:
        display.set_pen(255, 0, 0)        
        display.pixel(int(x*height), int(y*height))
        return 0
    
    
display.set_pen(0, 0, 200)
display.text("Happy Pi-Day!",140,90, 100, 3)

runs = 100 #wieviele Iterationen zwischen Screen Refresh
iterations = 100000 # Durchl�ufe

pi = 0.0
for it in range(1,iterations):
    for i in range(runs):
        pi += one_sample()
    # Text Info
    display.set_pen(255, 255, 255)        
    display.rectangle(140,10,120,46)
    display.set_pen(0, 0, 200)
    display.text("Pi: "+str(pi*4.0/runs/it),140,10, 200, 2)               # Pi
    display.text("It: "+str(runs*it),140,26, 200, 2)                      # Iterationen
    display.text("Fe: "+str((pi*4.0/runs/it-math.pi)*100),140,42, 200, 2) # Fehler %
    display.update()

Zutaten

  • 100g Butter
  • 314g Zucker
  • 4 Eier
  • 4 EL Weichweizengrieß
  • 1 Päckchen Vanillesoßenpulver
  • 1/2 bis 3/4 Päckchen Backpulver
  • 1kg Quark

PiDayKuchen (7 Bilder)

Gut Rühren! Kräftig von unserer Jung-Makerin unterstützt.

Zubereitung

Die weiche Butter mit dem Zucker schaumig rühren. Nach und nach die Eier einzeln hinzugeben. Den Weichweizengrieß, das Vanillesoßenpulver und das Backpulver einrühren. Zum Schluss den Quark dazu geben und alles nochmals gut durchrühren.

Die Masse in eine 26 cm Springform geben und bei 190 °C Ober- und Unterhitze ca. 60 Minuten (Minutenzeiger 2π rad) backen. Jetzt Ofentür leicht öffnen und nochmal 20 min langsam auskühlen lassen, damit er nicht zusammenfällt. Nach Bedarf dekorieren.

Guten Appetit und Happy Pi-Day wünschen die Make-Magazin-Redaktion und auch die Bäcker:innen Andrea, Pia und Paul! (caw)