실수로만 이루어진 식으로 계산을 하였더니 복소수 값이 나왔습니다.
조회수 564회
for i in range(1, 100):
num = 2 ** i
p2 = 0
for k in range(1, num + 1):
p2 += (1 / num + 1) * ( (1 - (k / num + 1) ** 2) ** .5 ) * 4
print(p2)
이게 코드인데, 원래대로라면 파이값의 근사치에 가까운 값이 나와야 하는데 자꾸 복소수 값이 출력 됩니다..
for i in range(1, 100):
num = 2 ** i
p2 = 0
for k in range(1, num):
p2 += (1 / num) * ( (1 - (k / num) ** 2) ** .5 ) * 4
print(p2)
반면 이 코드는 잘 작동이 됩니다.
어디서 문제가 발생된 것 일까요?
댓글 입력