拉马如金求pi公式(python实现)

拉马努金(Srinivasa Ramanujan)提出了许多关于圆周率 \pi 的高效计算的公式,其中一个著名的公式为:
 
 \frac{1}{\pi} = \frac{2\sqrt{2}}{9801} \sum_{k = 0}^{\infty} \frac{(4k)!(1103 + 26390k)}{(k!)^4 396^{4k}} 
 
下面是使用 Python 实现上述拉马努金求 \pi 公式的代码示例:
 
import math

def ramanujan_pi(iterations=10):
    total = 0
    factor = 2 * math.sqrt(2) / 9801
    for k in range(iterations):
        num = math.factorial(4 * k) * (1103 + 26390 * k)
        den = (math.factorial(k) ** 4) * (396 ** (4 * k))
        term = num / den
        total += term
    return 1 / (factor * total)

# 计算并打印结果
pi = ramanujan_pi(iterations=10)
print(pi)
 
 
在上述代码中:
 
1. 定义  ramanujan_pi  函数,接收一个参数  iterations  表示求和的项数。
2. 初始化  total  为 0,计算公式前面的系数  factor 。
3. 使用  for  循环计算求和部分的每一项  term ,并累加到  total  中。
4. 最后根据公式计算并返回 \pi 的近似值。
 
可以通过调整  iterations  参数来获得更精确的 pi 值,迭代次数越多,结果越接近真实的 pi 值。

你可能感兴趣的:(c语言)