跳至內容

楚德諾夫斯基算法

維基百科,自由的百科全書

楚德諾夫斯基算法(英語:Chudnovsky algorithm),是一種計算圓周率的快速方法。烏克蘭裔美國數學家楚德諾夫斯基兄弟英語Chudnovsky brothers於1988年發表了這套演算法,並使用它計算超過十億位數字。

該算法基於以下快速收斂的超幾何級數

這個恆等式與拉馬努金的某些涉及的公式非常相似。

代碼實現

import math
from decimal import Decimal, getcontext
import sys
import time

# 设置 Decimal 的精度,这里设置得很高以便于长时间运行
getcontext().prec = 1000

def compute_pi():
    """
    无限计算 π 的近似值,并实时在同一行更新显示结果。
    
    使用 Chudnovsky 算法计算 π 值,不断提高精度并更新输出。
    """
    c = Decimal(426880 * math.sqrt(10005))
    m = 1
    l = 13591409
    x = 1
    k = 6
    s = Decimal(l)
    i = 0

    while True:
        m = (k**3 - 16*k) * m // (i+1)**3 
        l += 545140134
        x *= -262537412640768000
        s += Decimal(m * l) / x
        k += 12
        pi_approx = c / s
        
        # 逐步显示更多位的 π
        sys.stdout.write(f"\r{pi_approx:.{i+2}f}")
        sys.stdout.flush()
        
        time.sleep(0.1)  # 减慢输出速度
        i += 1

if __name__ == "__main__":
    try:
        compute_pi()
    except KeyboardInterrupt:
        print("\n计算已停止")

這段代碼是一個Python程序, 用於無限制地計算π(圓周率)的近似值, 並實時在命令行中更新顯示結果. 它基於楚德諾夫斯基算法, 這是一種非常高效的方法, 可以快速計算π的多個小數位.

另見

參考文獻