用 Python 中的 ΣΣ(二西格玛)解释公式
Interpreting formulas with ΣΣ (two sigma) in Python
考虑等于两个西格玛 (ΣΣ) 的函数 f(x,y),其中 i 范围从 1 到 10 和(第一个西格玛)和 j 范围为数量 {ix^2 + jy^3)
的 1 到 10(第二个西格玛)
我相信第一个 sigma 是一个内循环,第二个 sigma 是一个外循环,但我无法将其重写为 Python。
如何将其转换为 Python?
我不是数学家,但据我所知,这可以转化为
def f(x, y):
return sum(
sum(
i * x ** 2 + j * y ** 3
for j in range(1, 11)
)
for i in range(1, 11)
)
或者写成for循环,
def f(x, y):
value = 0
for i in range(1, 11):
for j in range(1, 11):
value += i * x ** 2 + j * y ** 3
return value
第一个答案的方法都有效。通常“pythonic”方法是在使用 sum
之前定义列表理解,所以另一种方法是:
def f(x, y):
return sum([(i * x ** 2 + j * y ** 3) for i in range(1,11) for j in range(1, 11)]);
不用求和就可以重写数学公式,得到这个简单的函数:
def f(x, y):
return 550 * (x * x + y * y * y)
这是它的推导方式:
∑=1..10∑=1..10² + ³
= 10∑=1..10² + 10∑=1。 .10³
= 10²∑=1..10 + 10³∑=1.. 10
= 10²(10⋅11)/2 + 10³(10⋅11)/2
= 550(² + ³)
考虑等于两个西格玛 (ΣΣ) 的函数 f(x,y),其中 i 范围从 1 到 10 和(第一个西格玛)和 j 范围为数量 {ix^2 + jy^3)
的 1 到 10(第二个西格玛)我相信第一个 sigma 是一个内循环,第二个 sigma 是一个外循环,但我无法将其重写为 Python。
如何将其转换为 Python?
我不是数学家,但据我所知,这可以转化为
def f(x, y):
return sum(
sum(
i * x ** 2 + j * y ** 3
for j in range(1, 11)
)
for i in range(1, 11)
)
或者写成for循环,
def f(x, y):
value = 0
for i in range(1, 11):
for j in range(1, 11):
value += i * x ** 2 + j * y ** 3
return value
第一个答案的方法都有效。通常“pythonic”方法是在使用 sum
之前定义列表理解,所以另一种方法是:
def f(x, y):
return sum([(i * x ** 2 + j * y ** 3) for i in range(1,11) for j in range(1, 11)]);
不用求和就可以重写数学公式,得到这个简单的函数:
def f(x, y):
return 550 * (x * x + y * y * y)
这是它的推导方式:
∑=1..10∑=1..10² + ³
= 10∑=1..10² + 10∑=1。 .10³
= 10²∑=1..10 + 10³∑=1.. 10
= 10²(10⋅11)/2 + 10³(10⋅11)/2
= 550(² + ³)