我是 Python 的初学者。我尝试用 Python 语言评估 pi。我在这里使用 阿基米德方法。
我的代码是:
import math
from decimal import *
getcontext().prec = 50
pi = 0
PolySides = 6
SideLen = 1
Perim = 6
Dia = 2
while PolySides < 10000000000:
SideLen2 = Decimal(SideLen) / Decimal(2)
radius_a = Decimal(math.sqrt(1 - SideLen2**2))
radius_b = Decimal(1) - Decimal(radius_a)
SideLenNew = Decimal(math.sqrt(SideLen2**2 + radius_b**2))
PolyCircum = Decimal(PolySides * SideLen)
pi = PolyCircum / Dia
print('Polygon Sides:', PolySides, 'Pi = ', pi)
SideLen = SideLenNew
PolySides = 2 * PolySides
但出于某种原因,此代码将 pi 打印到小数点后 14 位。我不明白我在哪里失去了精度。谢谢你。
撒科打诨
有只小跳蛙
慕神8447489
相关分类