打乱一个数组(洗牌算法)
时间: 2023-01-20 23:08:04 知识小顽童
打乱一个数组,通常称为洗牌算法。可以使用随机数生成器来随机交换数组中的元素。具体实现可以使用以下算法:
从数组最后一个元素开始循环,生成一个随机数,并将其与当前元素交换位置。
重复步骤1直到循环到第一个元素。
示例代码如下:
Copy codeimport random
def shuffle(arr):
for i in range(len(arr)-1, 0, -1):
j = random.randint(0, i)
arr[i], arr[j] = arr[j], arr[i]
return arr
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(shuffle(numbers))
还有一种方法就是使用 python 内置函数 random.shuffle(arr) 直接打乱数组
Copy codeimport random
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
random.shuffle(numbers)
print(numbers)
注意,这两种方法都是不确定性算法,打乱顺序是随机的,每次运行结果都可能不一样。