学习资源网 问答 打乱一个数组(洗牌算法)

打乱一个数组(洗牌算法)

时间: 2023-01-20 23:08:04  知识小顽童

打乱一个数组,通常称为洗牌算法。可以使用随机数生成器来随机交换数组中的元素。具体实现可以使用以下算法:

  1. 从数组最后一个元素开始循环,生成一个随机数,并将其与当前元素交换位置。

  2. 重复步骤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)

注意,这两种方法都是不确定性算法,打乱顺序是随机的,每次运行结果都可能不一样。

学习考试资源网-58edu © All Rights Reserved.  湘ICP备12013312号-3 
站点地图| 免责说明| 合作请联系| 友情链接:学习乐园