1 从给定参数的正态分布中生成随机数
昌黎ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为成都创新互联公司的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18980820575(备注:SSL证书合作)期待与您的合作!
当考虑从正态分布中生成随机数时,应当首先知道正态分布的均值和方差(标准差),有了这些,就可以调用python中现有的模块和函数来生成随机数了。这里调用了Numpy模块中的random.normal函数,由于逻辑非参简单,所有直接贴上代码如下:
import numpy as np# 定义从正态分布中获取随机数的函数def get_normal_random_number(loc, scale): """ :param loc: 正态分布的均值 :param scale: 正态分布的标准差 :return:从正态分布中产生的随机数 """ # 正态分布中的随机数生成 number = np.random.normal(loc=loc, scale=scale) # 返回值 return number# 主模块if __name__ == "__main__": # 函数调用 n = get_normal_random_number(loc=2, scale=2) # 打印结果 print(n) # 结果:3.275192443463058
2 从给定参数的均匀分布中获取随机数的函数
考虑从均匀分布中获取随机数的时候,要事先知道均匀分布的下界和上界,然后调用Numpy模块的random.uniform函数生成随机数。
import numpy as np# 定义从均匀分布中获取随机数的函数def get_uniform_random_number(low, high): """ :param low: 均匀分布的下界 :param high: 均匀分布的上界 :return: 从均匀分布中产生的随机数 """ # 均匀分布的随机数生成 number = np.random.uniform(low, high) # 返回值 return number# 主模块if __name__ == "__main__": # 函数调用 n = get_uniform_random_number(low=2, high=4) # 打印结果 print(n) # 结果:2.4462417140153114
3 按照指定概率生成随机数
有时候我们需要按照指定的概率生成随机数,比如已知盒子中每种颜色的球的比例,猜测下一次取出的球的颜色。在这里介绍的问题和上面的例子相似,要求给定一个概率列表,从列表对应的数字列表或区间列表中生成随机数,分两部分讨论。
3.1 按照指定概率从数字列表中随机抽取数字
假设给定一个数字列表和一个与之对应的概率列表,两个列表对应位置的元素组成的元组即表示该数字在数字列表中以多大的概率出现,那么如何根据这些已知条件从数字列表中按概率抽取随机数呢?在这里我们考虑用均匀分布来模拟概率,代码如下:
import numpy as npimport random# 定义从均匀分布中获取随机数的函数def get_uniform_random_number(low, high): """ :param low: 均匀分布的下界 :param high: 均匀分布的上界 :return: 从均匀分布中产生的随机数 """ # 均匀分布的随机数生成 number = np.random.uniform(low, high) # 返回值 return number# 定义从一个数字列表中以一定的概率取出对应区间中数字的函数def get_number_by_pro(number_list, pro_list): """ :param number_list:数字列表 :param pro_list:数字对应的概率列表 :return:按概率从数字列表中抽取的数字 """ # 用均匀分布中的样本值来模拟概率 x = random.uniform(0, 1) # 累积概率 cum_pro = 0.0 # 将可迭代对象打包成元组列表 for number, number_pro in zip(number_list, pro_list): cum_pro += number_pro if x cum_pro: # 返回值 return number# 主模块if __name__ == "__main__": # 数字列表 num_list = [1, 2, 3, 4, 5] # 对应的概率列表 pr_list = [0.1, 0.3, 0.1, 0.4, 0.1] # 函数调用 n = get_number_by_pro(number_list=num_list, pro_list=pr_list) # 打印结果 print(n) # 结果:1
3.2 按照指定概率从区间列表中的某个区间内生成随机数
给定一个区间列表和一个与之对应的概率列表,两个列表相应位置的元素组成的元组即表示某数字出现在某区间内的概率是多少,已知这些,我们如何生成随机数呢?这里我们通过两次使用均匀分布达到目的,代码如下:
import numpy as npimport random# 定义从均匀分布中获取随机数的函数def get_uniform_random_number(low, high): """ :param low: 均匀分布的下界 :param high: 均匀分布的上界 :return: 从均匀分布中产生的随机数 """ # 均匀分布的随机数生成 number = np.random.uniform(low, high) # 返回值 return number# 定义从一个数字列表中以一定的概率取出对应区间中数字的函数def get_number_by_pro(number_list, pro_list): """ :param number_list:数字列表 :param pro_list:数字对应的概率列表 :return:按概率从数字列表中抽取的数字 """ # 用均匀分布中的样本值来模拟概率 x = random.uniform(0, 1) # 累积概率 cum_pro = 0.0 # 将可迭代对象打包成元组列表 for number, number_pro in zip(number_list, pro_list): cum_pro += number_pro if x cum_pro: # 从区间[number. number - 1]上随机抽取一个值 num = get_uniform_random_number(number, number - 1) # 返回值 return num# 主模块if __name__ == "__main__": # 数字列表 num_list = [1, 2, 3, 4, 5] # 对应的概率列表 pr_list = [0.1, 0.3, 0.1, 0.4, 0.1] # 函数调用 n = get_number_by_pro(number_list=num_list, pro_list=pr_list) # 打印结果 print(n) # 结果:3.49683787011193
在python中用于生成随机数的模块是random,在使用前需要import
random.random:
random.random():生成一个0-1之间的随机浮点数.例:
[python] view plain copy
import random
print random.random()
# 0.87594424128
random.uniform
random.uniform(a, b):生成[a,b]之间的浮点数.例:
[python] view plain copy
import random
print random.uniform(0, 10)
# 5.27462570463
random.ranint
random.randint(a, b):生成[a,b]之间的整数.例:
[python] view plain copy
import random
print random.randint(0, 10)
# 8
random.randrange
random.randrange(a, b, step):在指定的集合[a,b)中,以step为基数随机取一个数.如random.randrange(0, 20, 2),相当于从[0,2,4,6,...,18]中随机取一个.例:
[python] view plain copy
import random
print random.randrange(0, 20, 2)
# 14
python随机产生一堆数字并输出的方法:
通过for循环语句多次执行for循环里面的“random.randint()”函数产生随机数。将产生的随机数赋值给变量,输出这个变量就可以了
执行结果如下:
更多Python知识,请关注:Python自学网!!
在Python中,random模块用于生成随机数。下面介绍下random模块中常用的几个函数
01
打开我们python的ide
02
在打开的shell中,首先需要导入random库,才可以使用random中的方法,首先介绍下应用最多的函数,random.random(),可以生成一个0到1的随机符点数
03
random.uniform(a,b)函数,生成指定范围内的随机符点数,如下图
04
random.randint(a,b)函数,生成一个指定范围内的整数,如下图
05
random.choice(sqe)函数,从sqe序列中得到一个随机元素,如下图,序列元素可以包含很多种类,集合,列表,甚至元组都可以作为参数进行传递
python中的randint用来生成随机数,在使用randint之前,需要调用random库。其表达是为random.randint(x,y),参数x和y代表生成随机数的区间范围。
random() 函数命名来源于英文单词random(随机)。randint是random + integer拼接简写而成,代表随机一个整数。
Python标准库中的random函数,可以生成随机浮点数、整数、字符串,甚至帮助你随机选择列表序列中的一个元素,打乱一组数据等。
函数randint的使用
1、OUT = RANDINT
产生一个“ 0 ”或“ 1 ”等概率。
2、OUT = RANDINT(M)
生成的M 矩阵的随机二进制数字,“ 0 ”和“ 1 ”出现的概率均等。
3、OUT = RANDINT(M,N)
生成的(M,N) 矩阵的随机二进制数字,“ 0 ”和“ 1 ”出现的概率均等。
4、OUT = RANDINT(M,N,RANGE)
生成的(M,N) 矩阵的随机二进制数字,RANGE范围可以是标量或向量。
标量:为正的话,取值为[0,RANGE-1] ,为负的话,取值为 [RANGE+1, 0]。
向量:取值为[RANGE(1), RANGE(2)]。
5、OUT = RANDINT(M,N,RANGE,STATE)
resets the state of RAND to STATE。
python中,“random()”是random库中用于生成随机小数的函数。
python中用于生成伪随机数的函数库是random,因为是标准库,使用时候只需要import random;random库包含两类函数,常用的共8个:
基本随机函数:seed(),random()
扩展随机函数:randint(),getrandbits(),uniform(),randrange(),choice(),shuffle()
扩展资料:
random库采用梅森旋转算法(Mersennne Twister)生成伪随机数序列,可用于除随机性要求更高的加解密算法外的大多数工程应用。
使用random库的主要目的是生成随机数;该库提供了不同类型的随机数函数,所有函数都是基于最基本的random.random()函数扩展实现。