gpt4 book ai didi

python - python 中的 knuth shuffle

转载 作者:太空宇宙 更新时间:2023-11-03 20:37:58 25 4
gpt4 key购买 nike

我发现knuth shuffle是从尾到头进行的,比如

from random import randrange

def knuth_shuffle(x):
for i in range(len(x)-1, 0, -1):
j = randrange(i + 1)
x[i], x[j] = x[j], x[i]
return x

但是,我从头到尾都在想,为什么我们不能用它。像这样:

from random import randrange

def knuth_shuffle(x):
for i in range(0, len(x), 1):
j = randrange(i, len(x))
x[i], x[j] = x[j], x[i]
return x

我发现第二个函数的运行时间总是比第一个函数长。有人有这方面的线索吗?

最佳答案

您的替代解决方案看起来完全没问题。它的作用相同,但从左到右。我已经尝试过(在最多 1 000 000 个元素的列表上),并且我没有注意到运行时间有任何显着差异。您洗牌的 list 有多大?运行时间有什么区别?它们取决于列表的大小吗?

关于python - python 中的 knuth shuffle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57030583/

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