用python生成随机数的几种方法

1 从给定参数的正态分布中生成随机数 当考虑从正态分布中生成随机数时,应当首先知道正态分布的均值和方差(标准差),有了这些,就可以调用python中现有的模块和函数来生成随机数了。这里调用了Numpy模块中的random.normal函数,由于逻辑非参简单,所有直接贴上代码如下:import numpy as np# 定义从正...
用python生成随机数的几种方法
1 从给定参数的正态分布中生成随机数
当考虑从正态分布中生成随机数时,应当首先知道正态分布的均值和方差(标准差),有了这些,就可以调用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_proif 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_proif 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.496837870111932018-09-14
1、使用random模块生成随机数
Python中有一个名为random的内置模块,可以用于生成随机数。这个模块提供了多个函数来生成不同类型的随机数。例如:
'''
python
import random
# 生成一个1到10之间的随机整数
x=random.randint(1,10)
print(x)
'''
这个程序会生成一个1到10之间的随机整数并将其打印到控制台上。如果你多次运行这个程序,你会发现每次生成的随机数都不同。
除了randint()函数外,random模块还提供了其他生成随机数的函数,例如:
-random.random():生成一个0到1之间的随机实数。
-random.uniform(a,b):生成一个a到b之间的随机实数。
-random.choice(seq):从序列seq中随机选择一个元素。
-random.shuffle(seq):将序列seq中的元素随机排列。
2、使用numpy模块生成随机数
除了Python的内置random模块外,还有许多第三方库可以用于生成随机数。其中一个流行的库是numpy,它提供了许多用于科学计算的函数,包括生成随机数的函数。例如:
'''
python
import numpy as np
# 生成一个1到10之间的随机整数
x =np.random.randint(1,10)
print(x)
'''
与random模块类似,numpy也提供了许多其他生成随机数的函数,例如:
-np.random.random():生成一个0到1之间的随机实数。
-np.random.unifrom(a,b):生成一个a到b之间的随机实数。
-np.random.choice(seq):从序列seq中随机选择一个元素。
-np.random.shuffle(seq):将序列seq中的元素随机排列。
numpy的随机数生成函数与Python的内置函数相比有许多优势。例如,numpy的随机数生成函数可以生成高效的随机数序列,并提供更多的分布类型。2023-12-22
random模块2018-09-14
1、使用random模块生成随机数
Python中有一个名为random的内置模块,可以用于生成随机数。这个模块提供了多个函数来生成不同类型的随机数。例如:
'''
python
import random
# 生成一个1到10之间的随机整数
x=random.randint(1,10)
print(x)
'''
这个程序会生成一个1到10之间的随机整数并将其打印到控制台上。如果你多次运行这个程序,你会发现每次生成的随机数都不同。
除了randint()函数外,random模块还提供了其他生成随机数的函数,例如:
-random.random():生成一个0到1之间的随机实数。
-random.uniform(a,b):生成一个a到b之间的随机实数。
-random.choice(seq):从序列seq中随机选择一个元素。
-random.shuffle(seq):将序列seq中的元素随机排列。
2、使用numpy模块生成随机数
除了Python的内置random模块外,还有许多第三方库可以用于生成随机数。其中一个流行的库是numpy,它提供了许多用于科学计算的函数,包括生成随机数的函数。例如:
'''
python
import numpy as np
# 生成一个1到10之间的随机整数
x =np.random.randint(1,10)
print(x)
'''
与random模块类似,numpy也提供了许多其他生成随机数的函数,例如:
-np.random.random():生成一个0到1之间的随机实数。
-np.random.unifrom(a,b):生成一个a到b之间的随机实数。
-np.random.choice(seq):从序列seq中随机选择一个元素。
-np.random.shuffle(seq):将序列seq中的元素随机排列。
numpy的随机数生成函数与Python的内置函数相比有许多优势。例如,numpy的随机数生成函数可以生成高效的随机数序列,并提供更多的分布类型。2024-02-29
mengvlog 阅读 31 次 更新于 2025-09-05 02:09:08 我来答关注问题0
  •  深空见闻 随机生成数字函数公式

    在Excel和Python中生成随机数字的函数公式有多种。在Excel中:RAND()函数:用于生成0到1之间的均匀分布随机小数(不包含1)。若需生成指定范围的随机数,如10到100之间,可使用公式“=RAND()(90)+10”。若需生成随机整数,可结合INT函数,如“=INT(RAND()(90)+10)”。RANDBETWEEN(下限, 上限)函数...

  • 在Python中,random模块是生成随机数的重要工具,包含多种方法,以下为您介绍几个常用方法。首先,random.random()函数用来生成一个0到1之间的浮点数,包括零。例如:random.random()。其次,randint(a, b)函数用于生成在区间[a, b]内的随机整数,包含边界值。例如:random.randint(1, 10)。再者,ra...

  • import numpy as npimport random# 定义从均匀分布中获取随机数的函数def get_uniform_random_number(low, high):""":param low: 均匀分布的下界:param high: 均匀分布的上界:return: 从均匀分布中产生的随机数"""# 均匀分布的随机数生成number = np.random.uniform(low, high)# 返回值return num...

  • 1、使用random模块生成随机数 Python中有一个名为random的内置模块,可以用于生成随机数。这个模块提供了多个函数来生成不同类型的随机数。例如:'''python import random 生成一个1到10之间的随机整数 x=random.randint(1,10)print(x)'''这个程序会生成一个1到10之间的随机整数并将其打印到控制台上。

  •  一袭可爱风1718 详解随机数的生成

    下面介绍下Python内置的random模块的几种生成随机数的方法。1、random.random()随机生成 0 到 1 之间的浮点数[0.0, 1.0)。注意的是返回的随机数可能会是 0 但不可能为 1,即左闭右开的区间。2、random.randint(a , b)随机生成 a 与 b 之间的整数[a, b],a

檬味博客在线解答立即免费咨询

Python相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部