Python 使用For循环查找序列表达式[1/1+;1/2+;1/3…1/1000]
我需要协助完成一项任务。我需要使用python来找出如何创建一个“for循环”,它将执行以下操作:Python 使用For循环查找序列表达式[1/1+;1/2+;1/3…1/1000],python,for-loop,math,sequence,Python,For Loop,Math,Sequence,我需要协助完成一项任务。我需要使用python来找出如何创建一个“for循环”,它将执行以下操作: Series 1/1+1/2+1/3+1/4+...+1/1000 (which is expressed as 1000. ∑ n=1. 1 n ≈. 7.49) 我需要的程序循环通过所有这些,打印出每个数字。 例如: 998 7.483469855949342 999 7.48447086055343 1000 7.485470860550343 我现在得到的基本信息是 for x i
Series 1/1+1/2+1/3+1/4+...+1/1000 (which is expressed as 1000. ∑ n=1. 1 n ≈. 7.49)
我需要的程序循环通过所有这些,打印出每个数字。
例如:
998 7.483469855949342
999 7.48447086055343
1000 7.485470860550343
我现在得到的基本信息是
for x in range(1, 1000):
我不知道为什么,但我只是在努力让这个等式在我的脑海中起作用。任何帮助都将不胜感激 你正朝着正确的方向前进。在
for
循环之前,需要一个sum变量,用于存储1/x
总和的值
您可以用类似的方法来实现这一点:
sum = 0
for x in range(1, 1001):
sum += (1/x)
print(sum, x)
这里,我已将sum变量初始化为0。之后,我在[1,1000]的值上迭代x(包括这两个值)。我找到1/x
,并将其添加到总和中。接下来,我将根据您的需要打印这些值
注意:
范围(x,y)
方法为您提供了从x
到y-1的范围,您正朝着正确的方向前进。在for
循环之前,需要一个sum变量,用于存储1/x
总和的值
您可以用类似的方法来实现这一点:
sum = 0
for x in range(1, 1001):
sum += (1/x)
print(sum, x)
这里,我已将sum变量初始化为0。之后,我在[1,1000]的值上迭代x(包括这两个值)。我找到1/x
,并将其添加到总和中。接下来,我将根据您的需要打印这些值
注意:范围(x,y)
方法为您提供从x
到y-1
的范围。请记住,python2将为1/x返回0,并且您的总和最终将为1。为了获得浮点输出(即1/4为0.25),必须将其中一个数字转换为浮点(1或x)。因此,正确的方法是
sum = 0
for x in range(1, 1001):
sum += (float(1)/x)
print(sum, x)
请记住,python2将返回0表示1/x,并且您的总和将在结尾处返回1。为了获得浮点输出(即1/4为0.25),必须将其中一个数字转换为浮点(1或x)。因此,正确的方法是
sum = 0
for x in range(1, 1001):
sum += (float(1)/x)
print(sum, x)
itertools是你最好的朋友。提出的答案是正确的,但对于大数据来说速度较慢。如果我是你,我会:
import itertools
a = map(lambda x:1/x,range(1,1001))
#print(list(itertools.accumulate(a)))
for i, j in enumerate(1,itertools.accumulate(a)):
print(i,j)
解释:lambda x:1/x创建动态函数,将n转换为1/n。映射将该函数映射到从1到1000的值范围。然后我将其传递给累加1/1+1/2….;) itertools是你最好的朋友。提出的答案是正确的,但对于大数据来说速度较慢。如果我是你,我会:
import itertools
a = map(lambda x:1/x,range(1,1001))
#print(list(itertools.accumulate(a)))
for i, j in enumerate(1,itertools.accumulate(a)):
print(i,j)
解释:lambda x:1/x创建动态函数,将n转换为1/n。映射将该函数映射到从1到1000的值范围。然后我将其传递给累加1/1+1/2….;) 好极了!我在这里看到的唯一问题是,您正在将值存储到内存中。这意味着在处理大数据时要缓慢@丹尼尔,你说得对,不过这似乎是个初学者的问题。我想,现在(在这个级别上)我们不应该施加在内存中存储变量的缓慢性的影响。我认为出于教程的目的,这是可以的,但如果它是一个生产代码,效率是首选。好极了!我在这里看到的唯一问题是,您正在将值存储到内存中。这意味着在处理大数据时要缓慢@丹尼尔,你说得对,不过这似乎是个初学者的问题。我想,现在(在这个级别上)我们不应该施加在内存中存储变量的缓慢性的影响。我认为出于教程的目的,这是可以的,但如果它是一个生产代码,效率是首选。或者你可以从未来导入部门。来自未来进口部。Python2部门将被3取代,一切照旧:)或者您可以从将来导入部门。来自未来进口部。Python 2部门将被3取代,一切照旧:)