2016-10-04 11 views
1

Leibniz summationPythonのライプニッツの合計

私は、Pythonでライプニッツ合計を取得しようとしている、しかし、私のコードで、私はわずかに異なる値を取得しています。なぜそれが私に正しい答えを与えていないのかわかりません。

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()))) 

答えて

2

総和がpiを推定していませんが、それはpi/4を推定します。

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) 

出力:

3.14158265359 
+0

あなたがたはなく、他の人がPIコードを和よりも、まだそれは私にわずかに異なる値を与えている:( – buq333

+0

私はするつもりだった* 4だから、のようなものにコードを変更しますpi値を取得しますが、その前に私の方程式がある点で間違っていると思います – buq333

+0

@ buq333戻り値に '4'を掛けるだけでなく、総和方程式(つまり' '' range(iterations + 1) 'の代わりに '' iterations + 1' 'を使用しました。 –