Python For循环到数学表示法

Python For循环到数学表示法,python,math,notation,Python,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的方法

有人能告诉我怎样用数学符号写出下面的句子吗

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!}$)*(3/2-1/10**n)

求和(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)

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

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


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


Python没有阶乘运算符,因此您需要定义自己的函数并调用该函数,或者使用一个进行阶乘的库。另外,请检查
sum
的类型。它不是一个数字。我知道,我正在尝试将代码编写为数学符号,我认为您正在以另一种方式考虑它,我怀疑它是否会恢复n与原始代码相同。感谢大家的帮助,如果我错了,请纠正我,但我不应该对2k!/k**2+k使用相同的求和公式n(n+1)/2。当我尝试时,我仍然无法得到相同的结果(代码应该是n+1)
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)])])