Python 3.x 如何在python中从0求和到无穷大?
这是一段代码,它试图建立一个近似pi值的公式。它在“k>1e-15”行中给了我一个错误,我不知道为什么。我希望代码返回我在公式变量中编写的公式的总和,每次都将k值更改1,直到最后一项小于1e-15 您不能创建到无穷大的范围- 要使计算机继续运行,可以使用while循环:Python 3.x 如何在python中从0求和到无穷大?,python-3.x,Python 3.x,这是一段代码,它试图建立一个近似pi值的公式。它在“k>1e-15”行中给了我一个错误,我不知道为什么。我希望代码返回我在公式变量中编写的公式的总和,每次都将k值更改1,直到最后一项小于1e-15 您不能创建到无穷大的范围- 要使计算机继续运行,可以使用while循环: import math k = 0 def factorial(k): if k == 0: return 1 else: return k * factorial(k - 1)
import math
k = 0
def factorial(k):
if k == 0:
return 1
else:
return k * factorial(k - 1)
formula = (((factorial(4 * k)) * (1103 + 26390 * k)) / ((factorial(k) ** 4)) * (396 ** (4 * k)))
while k > (1e − 15):
for k in range ():
if k == 0:
return k
else:
return k + formula
print(summation(k, formula))
value_wanted = ((2* math.sqrt(2)) / 9801) * summation(k)
print('1/pi equals' , value_wanted )
但是,正如您所看到的,这段代码有一个缺点,它永远不会结束,因为计算机将忙于依赖和依赖:
普通的数值计算方法不能算作“无穷大”——在继续实验之前,你应该先看看无穷大的数学概念
如果你想进行数值计算,只需选择一个“足够大”的数字。对于可以考虑无穷大的代数分辨率,请检查软件包。什么错误?请阅读并改进问题。还要注意的是,缩进在python中很重要,而您的缩进远远不够。您使用的编辑器是什么?由于
(1e)中的减号,您得到了语法错误:标识符中的字符无效−15)
不是普通连字符,而是unicode字符减号<代码>unicodedata.name('−')代码>将告诉您这一点。请修复缩进
k = 0
while True:
k += 1
...