问题:给定一组数字,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])