查看“︁楚德诺夫斯基算法”︁的源代码
←
楚德诺夫斯基算法
跳转到导航
跳转到搜索
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
'''楚德诺夫斯基算法'''({{lang-en|Chudnovsky algorithm}}),是一种计算[[圆周率]]的快速方法。烏克蘭裔美國數學家{{link-en|楚德诺夫斯基兄弟|Chudnovsky brothers}}於1988年發表了這套演算法,並使用它计算超过十亿位数字。 该算法基于以下快速收敛的[[超几何级数]]: :<math> \frac{1}{\pi} = 12 \sum^\infty_{k=0} \frac{(-1)^k (6k)! (13591409 + 545140134k)}{(3k)!(k!)^3 640320^{3k +\frac {3}{2}}}.\!</math> 这个恒等式与[[拉马努金]]的某些涉及<math>{\pi}</math>的公式非常相似。 == 代码实现 == <syntaxhighlight lang="python" line="1"> 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计算已停止") </syntaxhighlight>这段代码是一个Python程序, 用于无限制地计算π(圆周率)的近似值, 并实时在命令行中更新显示结果. 它基于楚德诺夫斯基算法, 这是一种非常高效的方法, 可以快速计算π的多个小数位. == 另见 == * [[π的近似数]] == 参考文献 == * {{Citation | last1=Chudnovsky | first1=David V. | author1-link=楚德诺夫斯基兄弟 | last2=Chudnovsky | first2=Gregory V. | author2-link=楚德诺夫斯基兄弟 | title=The Computation of Classical Constants | url=http://www.jstor.org/stable/34831 | year=1989 | journal=[[美国国家科学院院刊|Proceedings of the National Academy of Sciences of the United States of America]] | issn=0027-8424 | volume=86 | issue=21 | pages=8178–8182 | doi=10.1073/pnas.86.21.8178 | pmid=16594075 | accessdate=2009-11-29 | archive-date=2021-04-02 | archive-url=https://web.archive.org/web/20210402044739/https://www.jstor.org/stable/34831 | dead-url=no }}. {{Num-stub}} [[Category:圆周率算法]]
该页面使用的模板:
Template:Citation
(
查看源代码
)
Template:Lang-en
(
查看源代码
)
Template:Link-en
(
查看源代码
)
Template:Num-stub
(
查看源代码
)
返回
楚德诺夫斯基算法
。
导航菜单
个人工具
登录
命名空间
页面
讨论
不转换
查看
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
特殊页面
工具
链入页面
相关更改
页面信息