For循环到数学符号

For loop to math notation

谁能告诉我如何用数学符号写出以下内容

for x in (range(1,n)):
    var1=1
    var2=0

    var1*=x
    var2+=x
    
    Var3+=var1/var2

我尝试了 SUM((n!)/SUM(n) 但我似乎无法得到相同的答案。

提前致谢。

更新: 我向所有被我欺骗的人道歉,我只是不想在尝试生成阶乘的原始公式时得到帮助,因为对我来说这是终极挑战和乐趣。这个想法是利用以下事实得出 e 的近似值来找到解决 n 的方法!唯一的问题是我太天真了,以为总和的公式适用于分数......原谅我社区你真棒!!!

我也对上一个做了一些调整。

($\sum_{i=0}^n \frac{\sum_{i=0}^n n}{n!} $)*(3/2 -1/10**N)

num=100
var1=0
var2=1
e8= 0

for x in (range(1,num)):
    var1+=x
    var2*=x
    e8+=var1/var2

Sym=(3/2 -(1/10**num))

e8*=1/Sym
print(Sym)


print(e8) 

Sum(n) 不会为您做任何事情。你想找到 (a_1/b_1 + ... + a_n/b_n) 的总和,其中 a_i 是 i! b_i 是从 1 到 i 的所有数字的总和。一个简化的公式是 n(n+1)/2。为了帮助理解为什么会这样,请考虑匹配第一个和最后一个元素、第二个和倒数第二个元素等,直到您将所有 n/2 对相加。每对的和是n+1,有n/2个,所以n(n+1)/2就是总和。因此,我们可以将var3表示为:

import math #for factorial function
var3 = 0 #im assuming it starts at 0 
for i in range(1, n):
    var3 += math.factorial(i)/((n)(n-1)/2)
import math
return sum([i/j for i, j in zip([math.factorial(i) for i in range(1, n)], [(i)(i+1)/2 for i in range(1, n)])])

这是一种更数学化的方法,但可读性较差。这个好吗?仔细检查它是否输出正确的数字,但它应该。

在退出循环并假设 Var3 初始化为 0 时,Var3 将等于 n-1。 (我打赌这不是你所期望的。)


如果将(重新)初始化移出循环,则公式为