Chudnovsky 알고리즘

1. 개념

Chudnovsky 알고리즘은 원주율 π를 매우 빠르게 계산하는 알고리즘이다. 항 하나를 더할 때마다 약 14자리 정도의 정확도가 증가한다.

2. 수식

π = 426880√10005 / Σ [ (6k)! (13591409 + 545140134k) / ((3k)! (k!)³ (-262537412640768000)k) ]

3. 파이썬 코드

from decimal import Decimal, getcontext

getcontext().prec = 110

def pi():
    C = 426880 * Decimal(10005).sqrt()

    M = 1
    L = 13591409
    X = 1
    K = 6
    S = L

    for i in range(1, 10):
        M = (M * (K**3 - 16*K)) // (i**3)
        L += 545140134
        X *= -262537412640768000
        S += Decimal(M * L) / X
        K += 12

    return C / S

print(pi())

4. 변수 설명

변수 의미
C 426880√10005 값
M 팩토리얼 계수 부분
L 13591409 + 545140134k 부분
X 큰 거듭제곱 분모 부분
S 급수의 합
K M을 빠르게 갱신하기 위한 보조 변수

5. 출력 예시

3.14159265358979323846264338327950288419716939937510
58209749445923078164062862089986280348253421170679

6. 핵심 정리

Chudnovsky 알고리즘은 느리게 수렴하는 바젤 문제 방식보다 훨씬 빠르다. 따라서 원주율을 소수점 이하 100자리, 1000자리, 10000자리 이상 계산할 때 적합하다.