c# - 尝试用 C# 计算 Pi 到 N 位小数

标签 c# algorithm pi

注意:我已经阅读了this topic ,但我不明白,它没有提供我可以使用的解决方案。我的数字问题很糟糕。

将 Pi 生成为用户想要的小数位数的简单方法是什么?这不是作业,只是试图完成此处列出的一些项目:

Link

最佳答案

计算pi 位数的经典算法是Gauss-Legendre 算法。虽然它不如一些更现代的算法快,但它确实具有易于理解的优势。

a_0 = 1
b_0 = 1/Sqrt(2)
t_0 = 1/4
p_0 = 1

然后

a_(n+1) = (a_n + b_n) / 2
b_(n+1) = Sqrt(a_n * b_n)
t_(n+1) = t_n - p_n * (a_n - a_(n+1))^2
p_(n+1) = 2 * p_n

然后

pi =. (a_n + b_n)^2 / (4 * t_n)

这里(=. 意思是“大约等于”)这个算法表现出二次收敛(正确的小数位数随着每次迭代翻倍)。

我会留给您将其转换为 C#,包括发现任意精度算术库。

关于c# - 尝试用 C# 计算 Pi 到 N 位小数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2226234/

相关文章:

c# - 当我们将线程的引用更改为 null 时会发生什么?

c# - Sitecore 上传,使用项目语言而不是上下文语言

c# - 将 3D 点映射到 2D 上下文

algorithm - 给定一个时间表,找到医生办公室的所有冲突约会

c - C语言中的圆周率

c# - 无法计算表达式,因为 native 框架位于调用堆栈的顶部

c# - Rhino Mocks,每次执行 stub 方法时返回不同的结果

java - 文本中 "marking up"URL 和主题标签的快速方法

java - 在 Java 中比较/评估数字

javascript - unicode 中没有 Pi 上标?