Idag är det Pi-dagen! Och för att fira det ska vi räkna ut pi med hjälp av en micro:bit.
Vad är Pi-dagen?
Den 14:e mars är Pi-dagen eftersom det skrivs som 3/14 på Amerikanska datumformatet, och 3,14 är början på π (pi). Det firas ofta med paj.
Hur räknar man ut π?
π har oändligt många decimaler. Så man kan bara räkna ut en approximation av det. Det första algoritm för att räkna ut π togs fram av Archimedes, och funkar ungefär så här.
En cirkel med radie 1 har en omkrets av 2π. Dela upp cirkeln i likbenta trianglar. Ju mer trianglar, ju högre precision det blir på resultatet. Varje triangel sen delas upp så att det blir två rätvinkliga trianglar. Nu kan vi, med hjälp av vinkeln och radie, beräkna längden på rätvinkliga triangelns korta sida. Alla denna korta sidor av alla trianglar räknat ihop blir en approximation av cirkelns omkrets, som är 2π. Så om vi delar det med 2 får vi en approximation av π!
Vilken editor?
Eftersom detta projekt behöver använda decimaler och trigonometri, vilka båda inte stöds i Makecode editorn, kommer vi använda oss av Python editorn som finns på python.microbit.org. I den används programmeringsspråket Python.
Skriva kod
from microbit import * from math import * # Ju mer trianglar vi delar upp cirkeln i, # ju högre precision vi får på pi. antalTrianglar = 500000 # Vinkeln för 1 rätvinklig triangel # (det finns 2 rätvinkliga i varje likbenig triangel) vinkel = 360 / (antalTrianglar * 2) # Räkna ut längden på korta sidan # genom att pussla om den här: # vinkel = tan(radie/kortSida) # (vinkel behövs också konverteras från grader till radianer) kortSida = atan(radians(vinkel))/1 # Räkna ut pi. # (Egentligen skulle det multipliceras med 2 # och sen delas med 2 igen # men det fallar bort # eftersom dom tar ut varandra.) result = kortSida * antalTrianglar while True: # Visa upp pi. display.scroll(str(result))