我想查找包含只有1和-1的四元素向量的所有组合。 (1,1,1,1),( - 1,1,1,1),...( - 1,-1,-1,-1)等 我的想法做到这一点是非常低效的im当然,但我想不出另一种方式来做到这一点,所以这就是我想要做的。 我发现有多少个总的向量,然后创建了许多空列表。我从矢量A
开始,然后将其与vectors
中的每个列表进行比较。如果A
与任何列表匹配,我随机更改A
元素的符号,然后再次检查新列表A
与vectors
。如果A
未找到匹配项,则将其替换为vectors
中的列表,并将while循环递增1.这应该继续,直到找到并打印所有可能的组合。 但是,我的代码只是吐出vectors
中的第一个更改,然后连续循环而不添加任何新的A
到vectors
。任何人都可以发现我的代码中没有做到我打算做的和/或指向正确的方向吗?由于试图找到一个2状态向量(在python中)的所有组合
import random
numvec = 2**4 # number of macrostates for a 4 component 2-state system
vectors = [[0,0,0,0] for i in range(numvec)] #initializing the numvec vectors
A = [1,1,1,1]
i = 0
while i < 16:
if any(x == A for x in vectors):
y = random.randrange(0, 3)
A[y] = A[y] * -1
else:
vectors[i] = A
print vectors[i]
i += 1
print vectors
哦,我再次意识到这种方法是非常低效的,但因为这是一个家庭作业,我更关心的是能够得到蟒蛇做我想做的事情,然后使用大量的建在功能上为我做工作。再次感谢。
是的!就是这样!这是唯一的问题,现在它的工作。非常感谢 – user2727518