问题: 给定一组数字S_a={n1,n2,n3,...,na}
产生的类型的数量的以下组合的:结合元件
{Sk,Sp}, where k=1...a, p=k+1,..,a
人们可以容易地构建这种解决方案作为一个循环:
N = len(S)
for i in range(0, N):
for j in range(i+1, N):
print("%d,%d" %(i,j))
但我正在寻找一个矢量化的解决方案。
这样做的另一个变化是考虑对象的列表:
class A:
def function(self, a):
pass
L = [a1, a2, a3, a4, a5 ]
#where a1,a2,an are of class A.
如何写这个循环的向量化版本:
N = len(L)-1
for i in range(0, N):
for j in range(i+1, N):
L[i].function(L[j])
你是什么意思的“矢量化”?通常,在Python数值编程中,通过“向量化”人们意味着“内部循环发生在'numpy'C代码内部。但你在任何地方都没有任何'numpy',所以我怀疑你在这里的意思可能不同。 – abarnert 2013-03-18 18:33:59
@abarnert是否倒下了你的?或者有人对这个问题的数学措词感到困惑? – 2013-03-18 18:40:30
我没有对这个问题进行投票。特别是对于新用户,除非OP积极拒绝提供足够的信息以使其成为一个有用的问题,否则我通常不会冷静下来。 – abarnert 2013-03-18 18:54:11