zoukankan      html  css  js  c++  java
  • Python Random随机数

    Python产生随机数的功能在random模块中实现。实现了各种分布的伪随机数生成器


    该模块能够生成0到1的浮点随机数,也能够在一个序列中进行随机选择。产生的随机数能够是均匀分布。高斯分布,对数正态分布。负指数分布以及alpha。beta分布。可是呢,这些随机数不适合使用在以加密为目的的应用中


    你也能够自己派生一个Random类的子类,自己去实现子类中的random(),seed()。getstate(),setstate()函数,一个新的产生器能够提供一个getrandbits()方法。这同意randrange()产生随意范围的随机数


    警告:

    这个模块中的随机数是伪随机数,不能应用于安全加密,假设你须要一个真正的password安全随机数,你须要使用os.urandom()或者random模块中的SystemRandom类来实现


    參考官方文档。random模块的经常使用函数例如以下:


    1、random.random()

    用于生成一个0到1的随机浮点数:0<= n < 1.0


    2、random.uniform(a,b)

    用于生成一个指定范围内的随机浮点数。两个參数当中一个是上限。一个是下限。假设a > b,则生成的随机数n: a <= n <= b。假设 a <b,则 b <= n <= a。

     

    3、random.randint(a,b)

    用于生成一个指定范围内的整数。当中參数a是下限,參数b是上限,生成的随机整数数n:a <= n <= b


    4、random.choice(seq)

    从序列中获取一个随机元素。參数seqe表示一个有序类型,能够是list,tuple,array。str等


    5、random.randrange([start,] stop[, step])

    从指定范围内,按指定基数递增的集合中 获取一个随机数。如:random.randrange(10,100, 2),结果相当于从[10, 12, 14, 16, ... 96, 98]序列中获取一个随机数。random.randrange(10,100, 2)在结果上与 random.choice(range(10, 100, 2) 等效。


    6、random.shuffle(x[,random])

    用于将一个列表中的元素打乱。能够用这个函数写一个洗牌的程序

     

    7、random.sample(seq,k)

    从指定序列中随机获取指定长度的片断。sample函数不会改动原有序列,假设k大于seq元素个数的话会报错。


    >>> random.random()                      # Random float x, 0.0 <= x < 1.0
    0.37444887175646646
    
    >>> random.uniform(1, 10)                # Random float x, 1.0 <= x < 10.0
    1.1800146073117523
    
    >>> random.randrange(10)                 # Integer from 0 to 9
    7
    
    >>> random.randrange(0, 101, 2)          # Even integer from 0 to 100
    26
    
    >>> random.choice('abcdefghij')          # Single random element
    'c'
    
    >>> items = [1, 2, 3, 4, 5, 6, 7]
    >>> random.shuffle(items)
    >>> items
    [7, 3, 2, 5, 6, 4, 1]
    
    >>> random.sample([1, 2, 3, 4, 5],  3)   # Three samples without replacement
    [4, 1, 5]
    



     

  • 相关阅读:
    [GEiv]第七章:着色器 高效GPU渲染方案
    Cocos2d-x 脚本语言Lua介绍
    TestNg依靠先进的采用强制的依赖,并依赖序列的------TestNg依赖于特定的解释(两)
    uboot通过使用U磁盘引导内核RT5350成功
    linux下一个rsync工具和配置
    STM32 模拟I2C (STM32F051)
    Something write in FSE 2014
    ESB (Enterprise Service Bus) 入门
    Spring框架:Spring安全
    “TNS-03505:无法解析名称”问题解决一例
  • 原文地址:https://www.cnblogs.com/brucemengbm/p/7241504.html
Copyright © 2011-2022 走看看