2016-10-04 4 views
1

Leibniz summationPython Leibniz Summe

Ich versuche leibniz Summierung mit Python zu bekommen, aber mit meinem Code, ich bin etwas anderen Wert bekommen. Ich kann nicht finden, warum es mir nicht die richtige Antwort gibt.

import math 
def estimate_pi(iterations): 
    pi = 0.0 
    for n in range(0,iterations+1): 
     pi = pi + (math.pow(-1,n)/((2*n)+1)) 
    return pi 

print("How many iterations?") 
print(estimate_pi(int(input()))) 

Antwort

2

Die Summierung nicht pi, schätzt es pi/4. Also den Code wie etwas ändern:

def estimate_pi(iterations): 
    sum = 0.0 
    for n in range(iterations): 
     sum += (math.pow(-1,n)/((2*n)+1)) 
    # sum now estimates pi/4, so return sum * 4 ~ (pi/4) * 4 ~ pi 
    return (sum * 4) 

print estimate_pi(100000) 

Ausgang:

3.14158265359 
+0

ihr, aber noch ist es mir etwas anderen Wert geben als andere pi Code Summierung :( – buq333

+0

Ich wollte * 4 bekomme einen Pi-Wert, aber vorher denke ich, dass meine Gleichung in irgendeinem Punkt falsch ist – buq333

+0

@ buq333 Zusätzlich zu dem Multiplizieren des Rückgabewerts mit "4" korrigierte ich auch den Bereich, um die Summationsgleichung (dh 'Bereich (Iterationen) widerzuspiegeln) 'anstelle von' Bereich (Iterationen + 1) '. –