我想查找包含只有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