• 6.6 random--伪随机数的生成


    本模块提供了生成要求安全度不高的随机数。假设须要更高安全的随机数产生。须要使用os.urandom()或者SystmeRandom模块。

    random.seed(a=None, version=2) 

    初始化随机数据的种子数值。假设aNone值,会取採用当前系统时间作为种子值。假设a是一个int类型的值。则会直接使用。參数version是版本号兼容,假设为版本号2时,对于strbytesbytearray採用int类型返回;在版本号1时,採用hash()返回。

    样例:

    #python 3.4

    from random import *

    r = seed()

    print(r)

    r = random()

    print(r)

    r = random()

    print(r)

    结果输出例如以下:

    None

    0.25563594631743225

    0.8596359931999921

    random.getstate() 

    获取当前随机数的环境状态,以便下次再使用。

    样例:

    #python 3.4

    from random import *

    r = seed()

    print(r)

    r = getstate()

    print(r)

    结果输出例如以下:

    None

    (3, (2147483648, 1806585935, 2218797231, 963762379, 2448530300, 4223961651, 2167919184, 3727107355, 2403035413,

    ...

    1296424577, 1100183651, 306611027, 444923926, 1168100930, 624), None)

    random.setstate(state) 

    恢复上一次获取的状态,上次的状态使用getstate()来获取。

    样例:

    #python 3.4

    from random import *

    r = seed()

    print(r)

    r = getstate()

    print(random())

    setstate(r)

    print(random())

    结果输出例如以下:

    None

    0.38424833141530745

    0.38424833141530745

    random.getrandbits(k) 

    返回指定k位数的随机整数值。

    样例:

    #python 3.4

    from random import *

    r = seed()

    r = getrandbits(4)

    print(r)

    r = getrandbits(4)

    print(r)

    结果输出例如以下:

    4

    9

    random.randrange(stop) 

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

    返回一个指定范围内的随机值。stop是最大值的整数边界。start是起始值。step是每一个值之间的间隔。返回的值大于等于start,小于stop

    样例:

    #python 3.4

    from random import *

    r = seed()

    r = randrange(5)

    print(r)

    r = randrange(0, 10, 2)

    print(r)

    结果输出例如以下:

    2

    8

    random.randint(a, b) 

    返回一个整数,它的范围是a <= N <=b

    样例:

    #python 3.4

    from random import *

    r = seed()

    r = randint(1, 2)

    print(r)

    r = randint(1, 2)

    print(r)

    结果输出例如以下:

    2

    1

    random.choice(seq) 

    从一个非空的序列里返回一个元素,假设为空的序列就抛出异常InexError

    样例:

    #python 3.4

    from random import *

    r = seed()

    r = choice(['a', 'b', 'c'])

    print(r)

    r = choice(['a', 'b', 'c'])

    print(r)

    结果输出例如以下:

    c

    a

    random.shuffle(x[, random]) 

    对序列x进行随机移动元素的位置。

    可选參数random是一个返回随机浮点数[0.0, 1.0)之间的函数。

    样例:

    #python 3.4

    from random import *

    r = seed()

    l = ['a', 'b', 'c', 'd']

    print(l)

    r = shuffle(l)

    print(r, l)

    结果输出例如以下:

    ['a', 'b', 'c', 'd']

    None ['b', 'd', 'a', 'c']

    random.sample(population, k) 

    从序列population里随机地返回k个元素的序列。

    样例:

    #python 3.4

    from random import *

    r = seed()

    l = ['a', 'b', 'c', 'd']

    print(l)

    r = sample(l, 3)

    print(r)

    结果输出例如以下:

    ['a', 'b', 'c', 'd']

    ['c', 'a', 'b']

    random.random() 

    返回范围在[0.0, 1.0)之间的随机浮点数。

    样例:

    #python 3.4

    from random import *

    r = seed()

    r = random()

    print(r)

    结果输出例如以下:

    0.3916060348292988

    random.uniform(a, b) 

    ab区间返回一个随机浮点数。假设a <= b则返回  a <= N <= b。假设 b < a则返回b <= N <= a

    样例:

    #python 3.4

    from random import *

    r = seed()

    r = uniform(1.0, 2.5)

    print(r)

    r = uniform(8.0, 2.5)

    print(r)

    结果输出例如以下:

    1.6498941793878243

    4.22188785768826

    random.triangular(low, high, mode) 

    返回三角形分布的随机数, low <= N <= high。參数mode指明众数出现位置。

    样例:

    #python 3.4

    from random import *

    r = seed()

    r = triangular(-3, 8, 0.8)

    print(r)

    r = triangular(-3, 8, 10)

    print(r)

    结果输出例如以下:

    1.5058316902823226

    0.27606363975774073

    random.betavariate(alpha, beta) 

    返回 beta分布的随机数,參数alpha是大于0的值,參数beta是大于0的值。返回值的区间在01之间。

    样例:

    #python 3.4

    from random import *

    r = seed()

    r = betavariate(1, 2)

    print(r)

    r = betavariate(1, 2)

    print(r)

    结果输出例如以下:

    0.11852634010531515

    0.029427309916706654

    random.expovariate(lambd) 

    返回指数分布的随机数。

    參数lambd是正值。刚从0到正无限大的值。參数lambd是负值。则返回负无穷大到0的值。

    样例:

    #python 3.4

    from random import *

    r = seed()

    r = expovariate(1)

    print(r)

    r = expovariate(-3)

    print(r)

    结果输出例如以下:

    0.2003044059401706

    -0.1785055187658876

    random.gammavariate(alpha, beta) 

    伽玛分布的随机数。

              x ** (alpha - 1) * math.exp(-x / beta)

    pdf(x) =  --------------------------------------

                math.gamma(alpha) * beta ** alpha

    样例:

    #python 3.4

    from random import *

    r = seed()

    r = gammavariate(1, 2)

    print(r)

    r = gammavariate(1, 2)

    print(r)

    结果输出例如以下:

    0.5413328891492575

    4.139239480698503

    random.gauss(mu, sigma) 

    返回高斯分布的随机数。

    參数mu是一个平均数,sigma是绝对偏差。

    样例:

    #python 3.4

    from random import *

    r = seed()

    r = gauss(1, 2)

    print(r)

    r = gauss(1, 2)

    print(r)

    结果输出例如以下:

    2.8846358328647543

    -0.7848726717436769

    random.lognormvariate(mu, sigma) 

    对数分布的随机数。mu是一个平均数,sigma是一个绝对偏差。

    样例:

    #python 3.4

    from random import *

    r = seed()

    r = lognormvariate(1, 2)

    print(r)

    r = lognormvariate(1, 2)

    print(r)

    结果输出例如以下:

    3.4904102483152704

    1.7560462679767879

    random.normalvariate(mu, sigma) 

    正态分布的随机数。參数mu是一个平均数。sigma是标准方差。

    样例:

    #python 3.4

    from random import *

    r = seed()

    r = normalvariate(1, 2)

    print(r)

    r = normalvariate(1, 2)

    print(r)

    结果输出例如以下:

    1.7317832780485172

    2.1163922446170247

    random.vonmisesvariate(mu, kappa) 

    返回冯米塞斯分布的随机数。參数mu是平均角度,使用弧度表示,范围在02*pi之间。

    參数kappa是集中程度參数。是一个大于等于0的值。

    样例:

    #python 3.4

    from random import *

    r = seed()

    r = vonmisesvariate(1, 2)

    print(r)

    r = vonmisesvariate(1, 2)

    print(r)

    结果输出例如以下:

    0.9831582967095295

    2.3340486646429404

    random.paretovariate(alpha) 

    返回帕累托分布的随机数。參数alpha是一个模型參数。

    样例:

    #python 3.4

    from random import *

    r = seed()

    r = paretovariate(2)

    print(r)

    r = paretovariate(2)

    print(r)

    结果输出例如以下:

    1.1031942255648155

    2.3128974772541597

    random.weibullvariate(alpha, beta) 

    返回韦伯分布的随机数。參数alpha是缩放系统,參数beta是模型參数。

    样例:

    #python 3.4

    from random import *

    r = seed()

    r = weibullvariate(2, 1)

    print(r)

    r = weibullvariate(2, 1)

    print(r)

    结果输出例如以下:

    1.1790484913990984

    5.519287151687428

    class random.SystemRandom([seed]) 

    使用操作系统底层产生随机数,可是不是全部系统平台都是可用的。

    样例:

    #python 3.4

    from random import *

    r = SystemRandom()

    print(r)

    print(r.random())

    结果输出例如以下:

    <random.SystemRandom object at 0x03180070>

    0.466491601955791



    蔡军生  QQ:9073204 深圳

  • 相关阅读:
    Excel密码解除方法 破解
    盗刷惊魂:招行银行信用卡被盗刷,亲身经历告诉你怎样快速挽回损失(信用卡网上被盗刷消费爆出潜规则)
    利用webBrowser获取页面iframe中的内容
    Winform 部署mshtml程序集出错的解决方案(该应用程序要求在全局程序集缓存GAC中安装程序集miscrosft.mshtml)
    分时均线最佳买点,分时均线操作法(转)
    Spring.NET学习笔记12——面向切面编程(基础篇) Level 300
    Spring.NET学习笔记18——整合NHibernate(基础篇) Level 300
    Spring.NET学习笔记17——事务传播行为(基础篇) Level 200
    Spring.NET学习笔记13——AOP的概念(基础篇) Level 200
    Spring.NET学习笔记16——事务管理(应用篇) Level 200
  • 原文地址:https://www.cnblogs.com/tlnshuju/p/7045088.html
Copyright © 2020-2023  润新知