Start | raknautpi
 

Räkna ut PI



Räkna ut pi med python

Det finns många olika algoritmer för att räkna ut pi. Typiskt är det någon slags summaformel vi behöver skapa kod för. Termerna följer ofta ett mönster och vi kan därför producera dessa termer och summera dem.

Leibniz formel



Leibniz formel ser ut såhär. Ju fler termer vi summerar, desto mer exakt resultat.

Nämnaren är 1 (tänk att siffran 1 är samma sak som 1/1) från början och ser ut att öka med 2 för varje term (1, 3, 5, 7, ...). Vidare pendlar termens tecken mellan plus och minus varannan gång, inledningsvis är tecknet plus för första termen. Så, vi kan sedan ackumulera alla termer i en variabel och vi kör ett antal iterationer, dvs så många termer vi tror behövs för att få en viss noggrannhet. Det sista vi gör är att multiplicera summan med 4.
iter = 5000 pi = 0 n = 1 t = 1 for i in range(iter): pi += (1/n)*t n += 2 t = -t pi *=4 print(pi)
Kan också skrivas såhär ...
def pos(d): return(neg(d-2) + 1/d) def neg(d): if d>0: return(pos(d-2) - 1/d) else: return(0) def pi(n): return(4 * pos(4*n+1)) print(pi(50))

John Wallis produkt



iter = 50000 t = 2 n = 1 pi = 2 for i in range(iter): if(i%2): t+=2 if(not i%2): n+=2 pi*=t/n pi *=2 print(pi)

Monte Carlo metoden


import random def estimate_pi(num_iter): inside_circle = 0 for _ in range(num_iter): x = random.random() y = random.random() if x * x + y * y <= 1: inside_circle += 1 return (inside_circle / num_iter) * 4 # Exempelanvändning iter = 50000 print(f"Uppskattat Pi: {estimate_pi(iter)}")
19.456148147583 ms