• Python基础随机数库——random


    (1).介绍

      Random库Python中用于生成随机数的一个标准库。计算机没有办法产生真正的随机数,但它可以产生伪随机数。

      伪随机数是计算机按照一定的运算规则产生的一些数据,只不过这些数据表现为随机数的形式。计算机中采用梅森旋转算法生成为随机序列,序列中的每一个元素就是伪随机数,由于计算机不能产生真正的随机数,所以伪随机数也就被称为随机数。

      Random库包含两类函数,常用的有8个:

        基本随机函数:seed(),random()

        扩展随机函数:randint(),getrandbits(),uniform(),randrange(),choice(),shuffle()

    (2).基本随机数函数

      Python中的随机数使用随机数种子来产生,随机数种子通过梅森旋转算法产生随机序列,这个随机序列是唯一并且确定的,随机序列中的每一个数就是随机数。换句话说,只要随机数种子相同,那么产生的随机序列无论是每一个数,还是数之间的关系都是相同的。

    函数 描述
    seed(a=None) 初始化给定的随机数种子,默认为当前时间
    random()

    生成一个[0.0,1.0)之间的随机小数(大于等于0,小于1)。

    根据随机数种子产生随机序列,产生后第一次调用该函数,则返回序列的第0个元素;

    第二次调用,则返回序列的第1个元素......以此类推。

      实例1:使用默认的随机数种子产生随机数

    >>> import random
    >>> random.seed()
    >>> random.random()
    0.4583742792868192
    >>> random.random()
    0.9905749191276231
    >>> random.seed()
    >>> random.random()
    0.8846207230562237
    >>> random.random()
    0.13447072126096293
    

      实例2:使用固定的随机数种子产生随机数

    >>> import random
    >>> random.seed(10)
    >>> random.random()
    0.5714025946899135
    >>> random.random()
    0.4288890546751146
    >>> random.seed(10)
    >>> random.random()
    0.5714025946899135
    >>> random.random()
    0.4288890546751146
    

    (3).扩展随机数函数

    函数 描述
    randint(a,b)

    生成一个[a,b]之间的随机整数(大于等于a,小于等于b)。例如:

    >>> import random
    >>> random.randint(1,9)
    3

    randrange(m,n[,k])

    生成一个[m,n)之间以k为步长的随机整数(大于等于m,小于n)。例如:

    >>> import random
    >>> random.randrange(10,110,10)
    20

    getrandbits(k)

    生成一个长度为k的二进制随机整数。例如:

    >>> import random
    >>> random.getrandbits(16)
    17266

    uniform(a,b)

    生成一个[a,b]之间的随机小数(大于等于a,小于等于b)。例如:

    >>> import random
    >>> random.uniform(10,20)
    12.484765001518227

    choice(seq)

    从序列seq中随机选择一个元素。例如:

    >>> import random
    >>> random.choice((1,2,3,4,5,6,7,8))
    4

    shuffle(seq)

    将变量序列seq中元素随机排序,并返回给序列的变量。例如:

    >>> import random
    >>> seq=[1,2,3,4,5,6,7]
    >>> random.shuffle(seq)
    >>> print(seq)
    [4, 3, 2, 1, 7, 6, 5]

  • 相关阅读:
    指针类型强制转换
    Spark大师之路:广播变量(Broadcast)源代码分析
    [Python]sqlite3二进制文件存储问题(BLOB)(You must not use 8-bit bytestrings unless you use a text_factory...)
    把字符串转化成整型显示
    一张图让你看清Java集合类(Java集合类的总结)
    Java读书笔记三(字符串)
    Afinal载入网络图片及下载文件用法
    netfilter/iptables 结构要点
    OpenGL 实现Interpolation插值算法
    GPU 编程入门到精通(五)之 GPU 程序优化进阶
  • 原文地址:https://www.cnblogs.com/diantong/p/12518218.html
Copyright © 2020-2023  润新知