pi/2 = 1 + 1/3 + (1*2)/(3*5) + (1*2*3)/(3*5*7) + ...
자, 다시 시도해보십시오.파이를 사용하여 파이를 계산하려면 시리즈를 사용하십시오.
최대 오류를 pi 값의 매개 변수로 사용하고 pi 값과 그 지점으로 이동하는 데 필요한 반복 횟수를 계산하는 함수를 작성해야합니다. 재귀 알고리즘을 사용할 수 없습니다.
는 지금까지 내가 가진 :
def piEuler (x):
count = 0.0
approx = 0.0
approx2 = 1.0
error = math.pi/2 - approx2
while error > x:
count = count + 1
approx3 = approx + approx2
error = math.pi/2 - approx3
#print error
approx = approx + approx2
approx2 = approx2 * count/(count + 2)
#print approx2
final = math.pi - error
return final, count
문제는 프로그램이 음의 값을 반환한다는 것입니다. 오류는 0으로 수렴되어야합니다. 시리즈의 근사값을 얻기 위해 pi의 허용 된 값에서 오류를 뺄 수 있어야합니다. 내가 도대체 뭘 잘못하고있는 겁니까?
분모 항목이 올바르지 않습니다. 'k = 1,2, .., n/2'에 대해'3 * 5 * ... * (2 * k + 1)'의 산물을 계산해서는 안됩니까? 3 * 4 * 5 * ... * n을하고있는 것처럼 보입니다. 이것은 더 큰 숫자를 줄 것이고 왜 그 시리즈가'pi/2'보다 큰 숫자로 합산되어서 오차항을 절대 값으로 증가시키는지를 설명 할 것입니다 (그러나 실제 값은 감소합니다, 즉 음수가됩니다). –
@JoelCornett 답변으로 게시해야합니다. –
@ Jon-Eric : 좋은 전화. –