gpt4 book ai didi

python - random.shuffle 随机性

转载 作者:太空狗 更新时间:2023-10-30 01:03:22 31 4
gpt4 key购买 nike

我正在尝试为家庭作业编写一个遗传算法来解决旅行商问题。

我正在尝试的变异函数之一是在游览中使用 random.shuffle

当我阅读 random.shuffle 的文档时,我看到:

shuffle(self, x, random=None, int=<type 'int'>) method of random.Random instance
x, random=random.random -> shuffle list x in place; return None.

Optional arg random is a 0-argument function returning a random
float in [0.0, 1.0); by default, the standard random.random.

有人可以解释一下这个函数中“random”参数的作用吗?我读过this question ,但它没有回答我的问题。

如果我能以某种方式控制洗牌的随机性(如果这有意义的话),我特别想使用这个函数

最佳答案

random 参数用于指定(另一个)随机数生成器。它是一个函数,期望返回 0<=x<1

范围内的统一随机数

如果随机数生成器两次返回相同的数字,则洗牌将相同。例如,

def mynonrandom():
return 0.1

q
[1, 2, 3, 4]
random.shuffle(q, mynonrandom)
q
[2, 3, 4, 1]
random.shuffle(q, mynonrandom)
q
[3, 4, 1, 2]

请注意,在这种特殊情况下,我每次都得到 -1 的转变。随机输入的确切结果可能取决于 random.shuffle 的实现。

对于遗传算法,您希望能够具有可变大小的洗牌随机性。 random.shuffle 没有做到这一点。您可能需要定义一些示例更改(例如,距离 N 交换的配对),然后随机化(使用您将定义的一些参数)您为每组新基因执行的这些操作的数量。

关于python - random.shuffle 随机性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9072955/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com