python 中的高斯-勒让德算法
我需要一些帮助来计算 Pi。 我正在尝试编写一个 python 程序来将 Pi 计算为 X 位数字。 我已经尝试了 python 邮件列表中的几个,但它对我的使用来说太慢了。 我已经阅读过有关 Gauss-Legendre 算法 的内容,并且我尝试将其移植到 Python 中没有成功。
我正在阅读此处,如果有任何关于我在哪里的意见,我将不胜感激出问题了!
它输出:0.163991276262
from __future__ import division
import math
def square(x):return x*x
a = 1
b = 1/math.sqrt(2)
t = 1/4
x = 1
for i in range(1000):
y = a
a = (a+b)/2
b = math.sqrt(b*y)
t = t - x * square((y-a))
x = 2* x
pi = (square((a+b)))/4*t
print pi
raw_input()
I need some help calculating Pi. I am trying to write a python program that will calculate Pi to X digits. I have tried several from the python mailing list, and it is to slow for my use.
I have read about the Gauss-Legendre Algorithm, and I have tried porting it to Python with no success.
I am reading from Here, and I would appreciate any input as to where I am going wrong!
It outputs: 0.163991276262
from __future__ import division
import math
def square(x):return x*x
a = 1
b = 1/math.sqrt(2)
t = 1/4
x = 1
for i in range(1000):
y = a
a = (a+b)/2
b = math.sqrt(b*y)
t = t - x * square((y-a))
x = 2* x
pi = (square((a+b)))/4*t
print pi
raw_input()
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您忘记了
4*t
两边的括号:您可以使用
decimal
进行更高精度的计算。输出:
You forgot parentheses around
4*t
:You can use
decimal
to perform calculation with higher precision.Output:
应该
should be