随机数库

作者: 酷飒de小姐姐 | 来源:发表于2021-04-03 08:26 被阅读0次

    random库

    Python自带了一个random库,该库可以随机生成一些数,常用来生成一个随机实数或者随机整数。

    可以用random.random()来随机生成一个0到1之间的实数。如果希望生成一个整数,则可以使用random.randint(开始值,结尾值)来得到指定范围内的一个整数。

    另外一个常用的函数是random.choice(),其接收一个列表,返回值是从输入列表中随机选中一个元素。可以用该函数来模拟掷骰子,如下:

    import random

    shaizi = [1,2,3,4,5,6]

    print(random.choice(shaizi))

    另外一个常用函数是random.shuffle(),用于将某个列表打乱顺序可以使用random.shuffle()函数来完成任务,该函数没有返回值。

    import random

    a =list(range(10))

    random.shuffle(a)

    print(a)

    该函数可以用来模拟洗扑克牌的动作。一副扑克牌有54张,最开始它们是有序排列的,下面使用shuffle()函数来实现洗牌的功能。

    import random

    def init_cards():

    ret = []

    for iin range(1,13):

    ret.append((i,u'红桃'))

    ret.append((i,u'方片'))

    ret.append((i,u'梅花'))

    ret.append((14,u'大王'))

    ret.append((14,u'小王'))

    return ret

    cards = init_cards()

    random.shuffle(cards)

    for cardin cards:

    if card[0] ==14:

    print(card[1])

    else:

    print("%s%d" %(card[1],card[0]))

    伪随机问题

    random模块生成的数具有基本的随机特性,但其并不是真正的随机数。例如随机生成整数,我们可以让其生成两串整数,每串10个数,可以发现这两串数是不同的,并且任意时刻让其生成10个整数,它似乎都会生成不同的数。如下代码:

    随机

    其实我们生成的随机序列是受一个叫作种子的变量控制的。只要修改了种子的值,那么生成的序列就是确定的。如下代码:

    固定随机

    得到的序列是一样的。这就是为何random库生成的是伪随机数,即该模块生成的并不是完全随机数。由于生成完全随机数的难度较大,所以在各种随机数库的实现中生成的都是伪随机数。

    相关文章

      网友评论

        本文标题:随机数库

        本文链接:https://www.haomeiwen.com/subject/wrzdhltx.html