python3 random

一.random

1.生成伪随机数

2.伪随机数是可预测的,严格意义上不具有随机性质,通常用数学公式的方法(比如统计分布,平方取中等)获得

3.正如数列需要有首项,产生伪随机数需要一个初值用来计算整个序列,这个初值被称为“种子”。种子可以是一个固定的值,也可以是根据当前系统状态确定的值。

4.https://docs.python.org/3.5/library/random.html?highlight=random#module-random

 

二.random方法

1.seed([]):改变随机数生成器的种子seed

 1 #seed() 方法改变随机数生成器的种子,可以在调用其他随机模块函数之前调用此函数。。
 2 random.seed()
 3 print ("使用默认种子生成随机数:", random.random())#变化
 4 random.seed(10)
 5 print ("使用整数种子生成随机数:", random.random())#不变
 6 random.seed("hello",2)
 7 print ("使用字符串种子生成随机数:", random.random())#不变
 8 
 9 ----------------------------------------------------------------
10 使用默认种子生成随机数: 0.8182785911795667
11 使用整数种子生成随机数: 0.5714025946899135
12 使用字符串种子生成随机数: 0.3537754404730722
seed

 

2.getrandbits()返回一个具有k个 随机的Python整数

1 #getrandbits返回一个具有k个 随机位的Python整数
2 #输入8=2*3,返回一个最多3个数字组成的整数
3 print(random.getrandbits(8))
4 ------------------------------------
5 248
getrandbit

 

3.生成单个随机整数

(1)randrange():从指定范围内,按指定基数递增的集合中获取一个随机数,基数缺省值为1;[ )

1 #randrange(start, stop[, step])
2 print(random.randrange(100))# 从 [ 0,100) 选取一个随机数
3 print(random.randrange(1, 100, 2))# 从 [1,100) 中选取一个奇数
4 ------------------------------------------------------------------------
5 63
6 91
randrange()

 

(2)randint(x,y):随机生一个整数int类型,可以指定这个整数的范围;[ ]

1 #randint(x,y)
2 print(random.randint(1000,1838))#从【1000,1838】中选一个整数
3 ---------------------------------------
4 1410
randint

 

4.序列的相关随机函数

(1)choice() :从非空序列的元素中随机挑选一个元素

1  #choice()方法返回一个列表,元组或字符串的随机项。
2 print(random.choice([1,5,6,7,8,8,7]))
3 print(random.choice('asadad '))
4 -----------------------------------------------
5 5
6 a
choice

 

(2)shuffle():将序列的所有元素随机排序

1 #shuffle()方法将序列的所有元素随机排序。
2 list=[20,15,38,22,7]
3 random.shuffle(list)
4 print(list)
5 -------------------------------
6 [15, 22, 38, 20, 7]
shurffle

 

(3)sample(sequence,length) 可以从指定的序列中,随机的截取指定长度的片断,不修改原序列。选取指定数量的字符

1 #random.sample(sequence, k)从指定序列中随机获取指定长度的片断
2 list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
3 slice = random.sample(list, 5)  # 从list中随机获取5个元素,作为一个片断返回
4 print(slice)
5 print(list) # 原有序列并没有改变
6 -------------------------------------------
7 ['3', 'b', 'a', '4']
sample

 

5.生成随机浮点数

(1)random():随机生成下一个浮点数,它在【0.0 , 1.0)范围内

1  #random()方法返回随机生成的一个浮点数,它在[0,1)范围内。
2 print(random.random())
3 ------------------------------------------------
4 0.7479187105035808
random

 

(2)uniform(x,y):随机生成下一个浮点数,它在 [x,y] 范围内

1  #uniform() 方法将随机生成下一个浮点数,它在[x,y]范围内,
2 print(random.uniform(5, 10))
3 ----------------------------------------------4 7.122212601550471
uniform

 

(3)其他,根据特定分布(比如正太分布,指数分布等)生成一个随机浮点数

 

posted on 2018-06-14 16:23  温润有方  阅读(332)  评论(0编辑  收藏  举报