簡體   English   中英

生成另一個列表的隨機排列列表

[英]Generating a list of random permutations of another list

因此,我正在嘗試使用遺傳算法解決TSP。 為此,我需要創建一個人口池。 我要完成的工作是創建一個隨機置換的列表,該列表將表示總體池。 我正在嘗試使用random.shuffle做到這一點。 這是我應該處理的部分代碼。 城市是城市列表,我想保留人口數量的路線(N個隨機排列的列表):

for x in range(n):
    random.shuffle(cities)
    routes.append(cities)

發生的事情是,它只是將相同的排列附加了n次。 有人對我可能會缺少的東西有任何想法嗎?

shuffle修改列表。 您需要將列表的副本添加到您的routes 否則,將添加對同一列表的引用,該列表將處於其最后的混洗狀態。

for x in range(n):
    random.shuffle(cities)
    routes.append(cities.copy())
import random
print [random.sample(cities,n) for i in xrange(n)]

你可以試試看

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM