2013-05-24 4 views
0

저는 파이를 많은 숫자로 계산하기 위해 파이썬 코드를 프로그래밍하고 있습니다.하지만 파이썬은 16 자리 만 계산하도록 허용합니다. (사실, 12345 ** 12345는 중요하지 않지만 공정하지는 않습니다.) 정확도는 더 높습니까? 어떤 개체가 존재하면 마녀가 더 많은 숫자를 가질 수 있습니까? 여기 코드 :더 긴 수레는 어떻게 계산합니까?

def fl(x): 
    if x < 2: 
     return 1 
    else: 
     return x*fl(x - 1) 
per = int (input("Period: ")) 
k = 0 
x = 1 
while k < per: 
    x += (fl(6*k)*(13591409 + 545140134*k))/(fl(3*k)*((fl(k))**3)*((-640320)**(k*3))) 
    print(x) 
    k += 1 

print("pi: " + str(426880*(10005**0.5)/x)) 
+0

http://docs.python.org/3.3/library/decimal – mata

+0

@mata'Decimal'은 여전히 ​​최대 정밀도를 가지고 있으며, OP는 아마도'print'가 자르거나 과학 표기법을 사용한다는 사실에 좌절감을 갖게 될 것입니다 기본적으로 숫자입니다. –

+0

@yes 물론, 최대 정밀도를 가지고 있지만 부동 소수점 구현은 없지만 정밀도는 조정 가능합니다. – mata

답변

1

확장 정밀도 부동 소수점을 제공하는 세 가지 공통 라이브러리가 있습니다.

소수점은 모든 최신 버전의 Python에 포함되어 있습니다. Python 3.3 이전에는 비교적 느리지 만 Python 3.3에서는 C로 구현되어 훨씬 빠릅니다. Decimal은 모든 최신 버전의 Python에 포함되는 장점이 있습니다.

mpmath은 확장 된 정밀도 데이터 형식을 구현하는 순수한 Python 라이브러리입니다. mpmath는 순수한 파이썬으로 작성된다는 장점이 있습니다.

gmpy2은 GMP/MPIR, MPFR 및 MPC 확장 정밀 라이브러리를위한 Python 래퍼입니다. gmpy2는 대부분의 계산에서 가장 빠르지 만 Mac 또는 Linux 시스템에 설치하려면 추가 작업이 필요합니다. 그러나 Windows 바이너리를 사용할 수 있습니다.

면책 조항 : gmpy2를 유지 관리하고 mpmath를 사용했습니다.