6.6 random--伪随机数的生成

来源:互联网 发布:手机找不到wifi网络 编辑:程序博客网 时间:2024/06/02 18:10

本模块提供了生成要求安全度不高的随机数。如果需要更高安全的随机数产生,需要使用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 深圳

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 华为p9plus闹钟停用怎么办? oppo开发者黄条怎么办 微信相机黑屏怎么办 华为p10港版怎么办 前置摄像头坏了怎么办 股票创历史新低怎么办 华为麦芒死屏怎么办 sim卡激活失败怎么办 魅蓝打电话黑屏怎么办 小米5拔号后黑屏怎么办 手机拔号黑屏怎么办 小米手机打电话黑屏怎么办 小米手机突然黑屏怎么办 小米手机自动黑屏怎么办 手机打电话闪退怎么办 oppor9摔黑屏了怎么办 oppo摔黑屏了怎么办 opp手机来电黑屏怎么办 红米手机开不机怎么办 红米note2死机怎么办 红米note5a黑屏怎么办 红米note4x黑屏怎么办 打电话屏幕不亮怎么办 拨打电话时黑屏怎么办 三星手机打电话黑屏怎么办 三星s7打电话黑屏怎么办 三星手机不能开机怎么办 三星手机开机黑屏怎么办 华为手机打电话黑屏怎么办 金立m5手机壁纸黑屏怎么办 万斯开胶了怎么办 vans鞋鞋底开胶怎么办 手机软件出现闪退怎么办 酷派手机蓝屏怎么办 手机突然间黑屏怎么办 手机闪退怎么办 oppo 手机拨号键盘不见了怎么办 oppor9无限重启怎么办 oppor9手机拨号黑屏怎么办 oppo手机摔黑屏怎么办 vivo手机黑屏打不开怎么办