random生成随机数(python随机数函数random)
大家好,关于random生成随机数很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于python随机数函数random的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!
用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_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
Java怎么产生随机数
一、利用random方法来生成随机数。
在Java语言中生成随机数相对来说比较简单,因为有一个现成的方法可以使用。在Math类中,Java语言提供了一个叫做random的方法。通过这个方法可以让系统产生随机数。
二、通过Random类来生成随机数。
在Java语言中,除了可以通过random方法来产生随机数之外,还可以通过一个random类来产生随机数。程序开发人员可以通过实例化一个Random对象来创建一个随机数的生成器。如 Random i=new Random()。通过这条语句就利用了Random类创建了一个随机数的生成器。数
三、产生随机的字符。
可以利用random方法来产生随机字符。如可以利用代码生成一个随机的小写字符:(char)(‘a’+Math.random()*(‘z’-‘a’+1))。其实这跟生成任意两个数之间的随机数类似。通过以上的代码就可以生成一个范围之内的任意随机字符。通过对这个代码进行适当的修整,还可以生成任意两个字符之间的随机字符与任意大写字符的随机字符。其转换的方式跟上面提到的任意范围之内的随机数类似。
如何在java中产生随机数
在j2se里我们可以使用Math.random()方法来产生一个随机数,这个产生的随机数是0-1之间的一个double,我们可以把他乘以一定的数,比如说乘以100,他就是个100以内的随机,这个在j2me中没有。
在java.util这个包里面提供了一个Random的类,我们可以新建一个Random的对象来产生随机数,他可以产生随机整数、随机float、随机double,随机long,这个也是我们在j2me的程序里经常用的一个取随机数的方法。
在我们的System类中有一个currentTimeMillis()方法,这个方法返回一个从1970年1月1号0点0分0秒到目前的一个毫秒数,返回类型是long,我们可以拿他作为一个随机数,我们可以拿他对一些数取模,就可以把他限制在一个范围之内。
OK,关于random生成随机数和python随机数函数random的内容到此结束了,希望对大家有所帮助。