• 技术文章 >Python技术 >Python基础教程

    python中如何实现简单的洗牌算法

    宋雪维宋雪维2021-02-20 10:45:40原创4741

    在我们玩的牌类游戏中,通过洗牌算法的设计,落在数组某个位置上的概率是相等的,那你知道如何使用python设计一个简单的洗牌算法吗?其实实现很简单,使用random模块shuffle方法即可实现洗牌算法,本文小编带领大家设计一个简单的洗牌算法。

    1、洗牌算法

    算法思想就是从原始数组中随机抽取一个新的数字到新数组中,其本质是对数组元素进行随机重排。

    数组中每个元素经过洗牌算法后落在数组某个位置上的概率是相等的,洗牌算法在牌类游戏中非常有用。

    2、洗牌算法的简单实现

    random模块shuffle方法实现洗牌算法

    shuffle()方法:将列表的所有元素随机排列

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    import random

      

      

    def shuffel(lst):

        l = len(lst)

      

        if l <= 1:

            return lst

        i = 0

        while l > 1:

            p = int(random.random()*l)

            lst[i], lst[i+p] = lst[i+p], lst[i]

            i += 1

            l -= 1

        return lst

      

      

    print(shuffel([1, 2, 2, 3, 3, 4, 5, 10]))

    以上就是python中使用random模块shuffle方法实现洗牌算法的代码操作,需要注意的是习方法返回空值,会影响原数组哦~

    专题推荐:python基础
    上一篇:python的概率分布有哪些类型? 下一篇:python中如何使用permutation()方法洗牌?

    相关文章推荐

    • python中泊松分布是什么意思?• 如何理解python中的二项分布?• python的概率分布有哪些类型?

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网