李兮元 发表于 2020-11-14 12:19:23

python计算t=1+1/2+1/3+...+1/n

目前运行时间超限,
问一下还需要如何优化算法

n=int(input())
l,k,q=1,1,1
for i in range(2,n+1):
    k=k*(i-1)
    l=l*i+1*k
    q*=i
l=l/q
print('%.6f'%l)

昨非 发表于 2020-11-14 12:50:13

直接取巧:{:10_256:}
n=int(input())

l=math.log(n,math.e)+0.5772157
print('%.6f'%l)

李兮元 发表于 2020-11-14 12:57:52

昨非 发表于 2020-11-14 12:50
直接取巧:

可以和小白解释一下吗?
03那段

昨非 发表于 2020-11-14 12:59:31

李兮元 发表于 2020-11-14 12:57
可以和小白解释一下吗?
03那段

这个是数学上的,我搜的欧拉常数C:

【1+1/2+1/3+……+1/n ≈ lnn+C(C≈0.57722,一个无理数,称作欧拉初始,专为调和级数所用。)】

李兮元 发表于 2020-11-14 13:17:07

昨非 发表于 2020-11-14 12:59
这个是数学上的,我搜的欧拉常数C:

【1+1/2+1/3+……+1/n ≈ lnn+C(C≈0.57722,一个无理数,称作欧 ...

大致懂了,但是我还没有学math

昨非 发表于 2020-11-14 13:18:35

李兮元 发表于 2020-11-14 13:17
大致懂了,但是我还没有学math

这个相关函数百度以查就能得到用法

推荐个新手链接,在里面输入函数名就可以搜到基础用法
https://www.runoob.com/python3/python3-tutorial.html
页: [1]
查看完整版本: python计算t=1+1/2+1/3+...+1/n