【问题标题】:Generating a list of random permutations of another list生成另一个列表的随机排列列表
【发布时间】:2016-01-28 18:56:26
【问题描述】:

所以,我正在尝试使用遗传算法解决 TSP。为此,我需要创建一个人口池。我不想完成的是创建一个代表人口池的随机排列列表。我正在尝试使用 random.shuffle 来做到这一点。这是我应该处理该部分的代码。 Cities 是一个城市列表,路线是我想要保留人口池的地方(N 个随机排列的列表):

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

发生的情况是它只是附加了相同的排列 n 次。有人知道我可能会错过什么吗?

【问题讨论】:

    标签: python random


    【解决方案1】:

    shuffle 就地修改列表。您需要将该列表的副本添加到您的routes;否则将添加对同一列表的引用,该列表将处于其最后的混洗状态。

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

    【讨论】:

      【解决方案2】:
      import random
      print [random.sample(cities,n) for i in xrange(n)]
      

      你可以试试这个。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-07-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-06
        • 1970-01-01
        • 1970-01-01
        • 2013-04-22
        相关资源
        最近更新 更多