Python Random随机数
2014-11-05 14:28
246 查看
Python产生随机数的功能在random模块中实现,实现了各种分布的伪随机数生成器
该模块可以生成0到1的浮点随机数,也可以在一个序列中进行随机选择,产生的随机数可以是均匀分布,高斯分布,对数正态分布,负指数分布以及alpha,beta分布,但是呢,这些随机数不适合使用在以加密为目的的应用中
你也可以自己派生一个Random类的子类,自己去实现子类中的random(),seed(),getstate(),setstate()函数,一个新的产生器可以提供一个getrandbits()方法,这允许randrange()产生任意范围的随机数
警告:
这个模块中的随机数是伪随机数,不能应用于安全加密,如果你需要一个真正的密码安全随机数,你需要使用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元素个数的话会报错。
该模块可以生成0到1的浮点随机数,也可以在一个序列中进行随机选择,产生的随机数可以是均匀分布,高斯分布,对数正态分布,负指数分布以及alpha,beta分布,但是呢,这些随机数不适合使用在以加密为目的的应用中
你也可以自己派生一个Random类的子类,自己去实现子类中的random(),seed(),getstate(),setstate()函数,一个新的产生器可以提供一个getrandbits()方法,这允许randrange()产生任意范围的随机数
警告:
这个模块中的随机数是伪随机数,不能应用于安全加密,如果你需要一个真正的密码安全随机数,你需要使用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]
相关文章推荐
- Python标准库数学与随机数 (math包,random包)
- Python random 生成随机数
- Python标准库之随机数 (math包、random包)介绍
- Python:random获取随机数用法小记
- Python模块学习 ---- random 随机数生成
- Python模块学习 ---- random 随机数生成
- Python中random模块生成随机数详解
- python 随机数模块random详解
- Python标准库12 数学与随机数 (math包,random包)
- Python标准库12 数学与随机数 (math包,random包)
- Python标准库12 数学与随机数 (math包,random包)
- Python模块学习 ---- random 随机数生成
- Python模块学习 ---- random 随机数生成
- python中随机数random类库简介
- Python模块学习--random 随机数生成
- python 随机数模块random详解
- Python数学与随机数 (math包,random包)
- Python random模块(获取随机数)常用方法和使用例子
- Python -- random 随机数生成
- python学习之10 随机数random