【发布时间】:2021-08-30 19:57:42
【问题描述】:
我希望编写以下产品总和:
以 Python 中最有效的方式。
注意f(j,i) 和g(k, i) 只是索引的一些函数,通常是 j^c_1/i^c_2 形式的分数。此外,当 i ==j 时,第一个产品必须评估为1。我有一个克罗内克三角洲作为解决这个问题的方法,但欢迎就如何强加此类条件提出每一个建议。
问题是我需要这种“限制”行为,因此,我想迭代大量n。我以前没有写过产品,主要是总和,我想知道如何继续这个。我或多或少熟悉循环,但我读过还有其他更有效的方法来实现这一点,例如迭代器。
执行此操作的最佳方法是什么,您能否提供一个可行的示例? 到目前为止,我的尝试是非常基础的,因为我知道总和/乘积的结构,但不知道如何评估它。 这是我目前所拥有的:
product_1 = 1
product_2 = 1
for i in range(a, n + 1, 1):
for j in range(a, n + 1, 1):
if i == j
something to make the product 1
else:
product_1 *= f(i,j)
for k in range(b, n + 1, 1):
product_2 *= g(i,k)
然后以某种方式计算乘积并在某处有一个求和变量?
【问题讨论】:
-
什么尝试?我在这里没有看到任何尝试。
-
@ScottHunter 感谢您的评论。我的问题在任何地方都没有说明:“这是我的尝试”或任何类似的东西。我犹豫是否要包括它,因为它非常基本。我应该这样做吗?
-
您应该始终包含您的尝试;它使您更容易说出您遇到的困难。
-
@ScottHunter 谢谢,你是对的。我已经这样做了,但我很有信心它远未完成。如您所知,我不确定如何计算产品的时间然后取它们的总和。
标签: numpy loops optimization