注意:我已经阅读了this topic ,但我不明白,它没有提供我可以使用的解决方案。我的数字问题很糟糕。
将 Pi 生成为用户想要的小数位数的简单方法是什么?这不是作业,只是试图完成此处列出的一些项目:
最佳答案
计算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/